"""
__UMLRT2Kiltera_MM_MDL.py_____________________________________________________

Automatically generated AToM3 Model File (Do not modify directly)
Author: gehan
Modified: Fri Jul 11 14:00:51 2014
______________________________________________________________________________
"""
from stickylink import *
from widthXfillXdecoration import *
from CD_Class3 import *
from CD_Association3 import *
from CD_Inheritance3 import *
from graph_CD_Association3 import *
from graph_CD_Class3 import *
from graph_CD_Inheritance3 import *
from ATOM3Enum import *
from ATOM3String import *
from ATOM3BottomType import *
from ATOM3Constraint import *
from ATOM3Attribute import *
from ATOM3Float import *
from ATOM3List import *
from ATOM3Link import *
from ATOM3Connection import *
from ATOM3Boolean import *
from ATOM3Appearance import *
from ATOM3Text import *
from ATOM3Action import *
from ATOM3Integer import *
from ATOM3Port import *
from ATOM3MSEnum import *

def UMLRT2Kiltera_MM_MDL(self, rootNode, CD_ClassDiagramsV3RootNode=None):

    # --- Generating attributes code for ASG CD_ClassDiagramsV3 ---
    if( CD_ClassDiagramsV3RootNode ): 
        # name
        CD_ClassDiagramsV3RootNode.name.setValue('UMLRT2Kiltera_MM')

        # author
        CD_ClassDiagramsV3RootNode.author.setValue('Annonymous')

        # showCardinalities
        CD_ClassDiagramsV3RootNode.showCardinalities.setValue((None, 1))
        CD_ClassDiagramsV3RootNode.showCardinalities.config = 0

        # showAssociationBox
        CD_ClassDiagramsV3RootNode.showAssociationBox.setValue((None, 1))
        CD_ClassDiagramsV3RootNode.showAssociationBox.config = 0

        # description
        CD_ClassDiagramsV3RootNode.description.setValue('\n')
        CD_ClassDiagramsV3RootNode.description.setHeight(15)

        # showAttributes
        CD_ClassDiagramsV3RootNode.showAttributes.setValue((None, 1))
        CD_ClassDiagramsV3RootNode.showAttributes.config = 0

        # showActions
        CD_ClassDiagramsV3RootNode.showActions.setValue((None, 1))
        CD_ClassDiagramsV3RootNode.showActions.config = 0

        # showConditions
        CD_ClassDiagramsV3RootNode.showConditions.setValue((None, 1))
        CD_ClassDiagramsV3RootNode.showConditions.config = 0

        # attributes
        CD_ClassDiagramsV3RootNode.attributes.setActionFlags([ 1, 1, 1, 0])
        lcobj1 =[]
        cobj1=ATOM3Attribute(self.types)
        cobj1.setValue(('name', 'String', None, ('Key', 1), ('Direct Editing', 1)))
        cobj1.initialValue=ATOM3String('', 20)
        cobj1.isDerivedAttribute = False
        lcobj1.append(cobj1)
        cobj1=ATOM3Attribute(self.types)
        cobj1.setValue(('author', 'String', None, ('Key', 0), ('Direct Editing', 1)))
        cobj1.initialValue=ATOM3String('Annonymous', 20)
        cobj1.isDerivedAttribute = False
        lcobj1.append(cobj1)
        cobj1=ATOM3Attribute(self.types)
        cobj1.setValue(('description', 'Text', None, ('Key', 0), ('Direct Editing', 1)))
        cobj1.initialValue=ATOM3Text('\n', 60,15 )
        cobj1.isDerivedAttribute = False
        lcobj1.append(cobj1)
        CD_ClassDiagramsV3RootNode.attributes.setValue(lcobj1)

        # constraints
        CD_ClassDiagramsV3RootNode.constraints.setActionFlags([ 1, 1, 1, 0])
        lcobj1 =[]
        CD_ClassDiagramsV3RootNode.constraints.setValue(lcobj1)
    # --- ASG attributes over ---


    self.obj350=CD_Class3(self)
    self.obj350.isGraphObjectVisual = True

    if(hasattr(self.obj350, '_setHierarchicalLink')):
      self.obj350._setHierarchicalLink(False)

    # QOCA
    self.obj350.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj350.Graphical_Appearance.setValue( ('MatchModel', self.obj350))

    # name
    self.obj350.name.setValue('MatchModel')

    # attributes
    self.obj350.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj350.attributes.setValue(lcobj2)

    # Abstract
    self.obj350.Abstract.setValue((None, 0))
    self.obj350.Abstract.config = 0

    # cardinality
    self.obj350.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    cobj2=ATOM3Connection()
    cobj2.setValue(('paired_with', (('Source', 'Destination'), 0), '1', '1'))
    lcobj2.append(cobj2)
    cobj2=ATOM3Connection()
    cobj2.setValue(('match_contains', (('Source', 'Destination'), 0), '0', 'N'))
    lcobj2.append(cobj2)
    self.obj350.cardinality.setValue(lcobj2)

    # display
    self.obj350.display.setValue('Multiplicities:\n  - To paired_with: 1 to 1\n  - To match_contains: 0 to N\n')
    self.obj350.display.setHeight(15)

    # Actions
    self.obj350.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj350.Actions.setValue(lcobj2)

    # Constraints
    self.obj350.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj350.Constraints.setValue(lcobj2)

    self.obj350.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(60.0,80.0,self.obj350)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.1046875, 1.0]
    else: new_obj = None
    self.obj350.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj350)
    self.globalAndLocalPostcondition(self.obj350, rootNode)
    self.obj350.postAction( rootNode.CREATE )

    self.obj351=CD_Class3(self)
    self.obj351.isGraphObjectVisual = True

    if(hasattr(self.obj351, '_setHierarchicalLink')):
      self.obj351._setHierarchicalLink(False)

    # QOCA
    self.obj351.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj351.Graphical_Appearance.setValue( ('ApplyModel', self.obj351))

    # name
    self.obj351.name.setValue('ApplyModel')

    # attributes
    self.obj351.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj351.attributes.setValue(lcobj2)

    # Abstract
    self.obj351.Abstract.setValue((None, 0))
    self.obj351.Abstract.config = 0

    # cardinality
    self.obj351.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    cobj2=ATOM3Connection()
    cobj2.setValue(('paired_with', (('Source', 'Destination'), 1), '1', '1'))
    lcobj2.append(cobj2)
    cobj2=ATOM3Connection()
    cobj2.setValue(('apply_contains', (('Source', 'Destination'), 0), '0', 'N'))
    lcobj2.append(cobj2)
    self.obj351.cardinality.setValue(lcobj2)

    # display
    self.obj351.display.setValue('Multiplicities:\n  - From paired_with: 1 to 1\n  - To apply_contains: 0 to N\n')
    self.obj351.display.setHeight(15)

    # Actions
    self.obj351.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj351.Actions.setValue(lcobj2)

    # Constraints
    self.obj351.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj351.Constraints.setValue(lcobj2)

    self.obj351.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(71.03125,1869.0,self.obj351)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0828125, 1.0]
    else: new_obj = None
    self.obj351.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj351)
    self.globalAndLocalPostcondition(self.obj351, rootNode)
    self.obj351.postAction( rootNode.CREATE )

    self.obj352=CD_Class3(self)
    self.obj352.isGraphObjectVisual = True

    if(hasattr(self.obj352, '_setHierarchicalLink')):
      self.obj352._setHierarchicalLink(False)

    # QOCA
    self.obj352.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj352.Graphical_Appearance.setValue( ('MetaModelElement_S', self.obj352))

    # name
    self.obj352.name.setValue('MetaModelElement_S')

    # attributes
    self.obj352.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = False
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = False
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = False
    lcobj2.append(cobj2)
    self.obj352.attributes.setValue(lcobj2)

    # Abstract
    self.obj352.Abstract.setValue((None, 1))
    self.obj352.Abstract.config = 0

    # cardinality
    self.obj352.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    cobj2=ATOM3Connection()
    cobj2.setValue(('match_contains', (('Source', 'Destination'), 1), '0', 'N'))
    lcobj2.append(cobj2)
    cobj2=ATOM3Connection()
    cobj2.setValue(('directLink_S', (('Source', 'Destination'), 0), '0', 'N'))
    lcobj2.append(cobj2)
    cobj2=ATOM3Connection()
    cobj2.setValue(('directLink_S', (('Source', 'Destination'), 1), '0', 'N'))
    lcobj2.append(cobj2)
    cobj2=ATOM3Connection()
    cobj2.setValue(('indirectLink_S', (('Source', 'Destination'), 0), '0', 'N'))
    lcobj2.append(cobj2)
    cobj2=ATOM3Connection()
    cobj2.setValue(('indirectLink_S', (('Source', 'Destination'), 1), '0', 'N'))
    lcobj2.append(cobj2)
    cobj2=ATOM3Connection()
    cobj2.setValue(('backward_link', (('Source', 'Destination'), 1), '0', 'N'))
    lcobj2.append(cobj2)
    cobj2=ATOM3Connection()
    cobj2.setValue(('trace_link', (('Source', 'Destination'), 1), '0', 'N'))
    lcobj2.append(cobj2)
    self.obj352.cardinality.setValue(lcobj2)

    # display
    self.obj352.display.setValue('Attributes:\n  - cardinality :: String\n  - classtype :: String\n  - name :: String\nMultiplicities:\n  - From match_contains: 0 to N\n  - To directLink_S: 0 to N\n  - From directLink_S: 0 to N\n  - To indirectLink_S: 0 to N\n  - From indirectLink_S: 0 to N\n  - From backward_link: 0 to N\n  - From trace_link: 0 to N\n')
    self.obj352.display.setHeight(15)

    # Actions
    self.obj352.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj352.Actions.setValue(lcobj2)

    # Constraints
    self.obj352.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj352.Constraints.setValue(lcobj2)

    self.obj352.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(1400.90625,65.081045082,self.obj352)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.203125, 2.1688524590163936]
    else: new_obj = None
    self.obj352.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj352)
    self.globalAndLocalPostcondition(self.obj352, rootNode)
    self.obj352.postAction( rootNode.CREATE )

    self.obj353=CD_Class3(self)
    self.obj353.isGraphObjectVisual = True

    if(hasattr(self.obj353, '_setHierarchicalLink')):
      self.obj353._setHierarchicalLink(False)

    # QOCA
    self.obj353.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj353.Graphical_Appearance.setValue( ('MetaModelElement_T', self.obj353))

    # name
    self.obj353.name.setValue('MetaModelElement_T')

    # attributes
    self.obj353.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = False
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = False
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = False
    lcobj2.append(cobj2)
    self.obj353.attributes.setValue(lcobj2)

    # Abstract
    self.obj353.Abstract.setValue((None, 1))
    self.obj353.Abstract.config = 0

    # cardinality
    self.obj353.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    cobj2=ATOM3Connection()
    cobj2.setValue(('apply_contains', (('Source', 'Destination'), 1), '0', 'N'))
    lcobj2.append(cobj2)
    cobj2=ATOM3Connection()
    cobj2.setValue(('directLink_T', (('Source', 'Destination'), 0), '0', 'N'))
    lcobj2.append(cobj2)
    cobj2=ATOM3Connection()
    cobj2.setValue(('directLink_T', (('Source', 'Destination'), 1), '0', 'N'))
    lcobj2.append(cobj2)
    cobj2=ATOM3Connection()
    cobj2.setValue(('backward_link', (('Source', 'Destination'), 0), '0', 'N'))
    lcobj2.append(cobj2)
    cobj2=ATOM3Connection()
    cobj2.setValue(('trace_link', (('Source', 'Destination'), 0), '0', 'N'))
    lcobj2.append(cobj2)
    self.obj353.cardinality.setValue(lcobj2)

    # display
    self.obj353.display.setValue('Attributes:\n  - cardinality :: String\n  - classtype :: String\n  - name :: String\nMultiplicities:\n  - From apply_contains: 0 to N\n  - To directLink_T: 0 to N\n  - From directLink_T: 0 to N\n  - To backward_link: 0 to N\n  - To trace_link: 0 to N\n')
    self.obj353.display.setHeight(15)

    # Actions
    self.obj353.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj353.Actions.setValue(lcobj2)

    # Constraints
    self.obj353.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj353.Constraints.setValue(lcobj2)

    self.obj353.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(1380.0,1780.0,self.obj353)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.1812500000000001, 1.8073770491803278]
    else: new_obj = None
    self.obj353.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj353)
    self.globalAndLocalPostcondition(self.obj353, rootNode)
    self.obj353.postAction( rootNode.CREATE )

    self.obj354=CD_Class3(self)
    self.obj354.isGraphObjectVisual = True

    if(hasattr(self.obj354, '_setHierarchicalLink')):
      self.obj354._setHierarchicalLink(False)

    # QOCA
    self.obj354.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj354.Graphical_Appearance.setValue( ('Element', self.obj354))

    # name
    self.obj354.name.setValue('Element')

    # attributes
    self.obj354.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj354.attributes.setValue(lcobj2)

    # Abstract
    self.obj354.Abstract.setValue((None, 0))
    self.obj354.Abstract.config = 0

    # cardinality
    self.obj354.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj354.cardinality.setValue(lcobj2)

    # display
    self.obj354.display.setValue('Attributes:\n')
    self.obj354.display.setHeight(15)

    # Actions
    self.obj354.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj354.Actions.setValue(lcobj2)

    # Constraints
    self.obj354.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj354.Constraints.setValue(lcobj2)

    self.obj354.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(340.0,460.0,self.obj354)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj354.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj354)
    self.globalAndLocalPostcondition(self.obj354, rootNode)
    self.obj354.postAction( rootNode.CREATE )

    self.obj355=CD_Class3(self)
    self.obj355.isGraphObjectVisual = True

    if(hasattr(self.obj355, '_setHierarchicalLink')):
      self.obj355._setHierarchicalLink(False)

    # QOCA
    self.obj355.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj355.Graphical_Appearance.setValue( ('NamedElement', self.obj355))

    # name
    self.obj355.name.setValue('NamedElement')

    # attributes
    self.obj355.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj355.attributes.setValue(lcobj2)

    # Abstract
    self.obj355.Abstract.setValue((None, 1))
    self.obj355.Abstract.config = 0

    # cardinality
    self.obj355.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj355.cardinality.setValue(lcobj2)

    # display
    self.obj355.display.setValue('Attributes:\n')
    self.obj355.display.setHeight(15)

    # Actions
    self.obj355.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj355.Actions.setValue(lcobj2)

    # Constraints
    self.obj355.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj355.Constraints.setValue(lcobj2)

    self.obj355.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(640.0,940.0,self.obj355)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj355.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj355)
    self.globalAndLocalPostcondition(self.obj355, rootNode)
    self.obj355.postAction( rootNode.CREATE )

    self.obj356=CD_Class3(self)
    self.obj356.isGraphObjectVisual = True

    if(hasattr(self.obj356, '_setHierarchicalLink')):
      self.obj356._setHierarchicalLink(False)

    # QOCA
    self.obj356.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj356.Graphical_Appearance.setValue( ('Trigger_S', self.obj356))

    # name
    self.obj356.name.setValue('Trigger_S')

    # attributes
    self.obj356.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj356.attributes.setValue(lcobj2)

    # Abstract
    self.obj356.Abstract.setValue((None, 0))
    self.obj356.Abstract.config = 0

    # cardinality
    self.obj356.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj356.cardinality.setValue(lcobj2)

    # display
    self.obj356.display.setValue('Attributes:\n')
    self.obj356.display.setHeight(15)

    # Actions
    self.obj356.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj356.Actions.setValue(lcobj2)

    # Constraints
    self.obj356.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj356.Constraints.setValue(lcobj2)

    self.obj356.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(140.0,640.0,self.obj356)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj356.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj356)
    self.globalAndLocalPostcondition(self.obj356, rootNode)
    self.obj356.postAction( rootNode.CREATE )

    self.obj357=CD_Class3(self)
    self.obj357.isGraphObjectVisual = True

    if(hasattr(self.obj357, '_setHierarchicalLink')):
      self.obj357._setHierarchicalLink(False)

    # QOCA
    self.obj357.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj357.Graphical_Appearance.setValue( ('Action', self.obj357))

    # name
    self.obj357.name.setValue('Action')

    # attributes
    self.obj357.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj357.attributes.setValue(lcobj2)

    # Abstract
    self.obj357.Abstract.setValue((None, 0))
    self.obj357.Abstract.config = 0

    # cardinality
    self.obj357.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj357.cardinality.setValue(lcobj2)

    # display
    self.obj357.display.setValue('Attributes:\n')
    self.obj357.display.setHeight(15)

    # Actions
    self.obj357.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj357.Actions.setValue(lcobj2)

    # Constraints
    self.obj357.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj357.Constraints.setValue(lcobj2)

    self.obj357.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(140.0,800.0,self.obj357)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj357.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj357)
    self.globalAndLocalPostcondition(self.obj357, rootNode)
    self.obj357.postAction( rootNode.CREATE )

    self.obj358=CD_Class3(self)
    self.obj358.isGraphObjectVisual = True

    if(hasattr(self.obj358, '_setHierarchicalLink')):
      self.obj358._setHierarchicalLink(False)

    # QOCA
    self.obj358.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj358.Graphical_Appearance.setValue( ('PortRef', self.obj358))

    # name
    self.obj358.name.setValue('PortRef')

    # attributes
    self.obj358.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj358.attributes.setValue(lcobj2)

    # Abstract
    self.obj358.Abstract.setValue((None, 0))
    self.obj358.Abstract.config = 0

    # cardinality
    self.obj358.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj358.cardinality.setValue(lcobj2)

    # display
    self.obj358.display.setValue('Attributes:\n')
    self.obj358.display.setHeight(15)

    # Actions
    self.obj358.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj358.Actions.setValue(lcobj2)

    # Constraints
    self.obj358.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj358.Constraints.setValue(lcobj2)

    self.obj358.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(380.0,660.0,self.obj358)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj358.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj358)
    self.globalAndLocalPostcondition(self.obj358, rootNode)
    self.obj358.postAction( rootNode.CREATE )

    self.obj359=CD_Class3(self)
    self.obj359.isGraphObjectVisual = True

    if(hasattr(self.obj359, '_setHierarchicalLink')):
      self.obj359._setHierarchicalLink(False)

    # QOCA
    self.obj359.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj359.Graphical_Appearance.setValue( ('PortConnectorRef', self.obj359))

    # name
    self.obj359.name.setValue('PortConnectorRef')

    # attributes
    self.obj359.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj359.attributes.setValue(lcobj2)

    # Abstract
    self.obj359.Abstract.setValue((None, 0))
    self.obj359.Abstract.config = 0

    # cardinality
    self.obj359.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj359.cardinality.setValue(lcobj2)

    # display
    self.obj359.display.setValue('Attributes:\n')
    self.obj359.display.setHeight(15)

    # Actions
    self.obj359.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj359.Actions.setValue(lcobj2)

    # Constraints
    self.obj359.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj359.Constraints.setValue(lcobj2)

    self.obj359.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(340.0,820.0,self.obj359)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj359.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj359)
    self.globalAndLocalPostcondition(self.obj359, rootNode)
    self.obj359.postAction( rootNode.CREATE )

    self.obj360=CD_Class3(self)
    self.obj360.isGraphObjectVisual = True

    if(hasattr(self.obj360, '_setHierarchicalLink')):
      self.obj360._setHierarchicalLink(False)

    # QOCA
    self.obj360.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj360.Graphical_Appearance.setValue( ('StateMachineElement', self.obj360))

    # name
    self.obj360.name.setValue('StateMachineElement')

    # attributes
    self.obj360.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj360.attributes.setValue(lcobj2)

    # Abstract
    self.obj360.Abstract.setValue((None, 1))
    self.obj360.Abstract.config = 0

    # cardinality
    self.obj360.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj360.cardinality.setValue(lcobj2)

    # display
    self.obj360.display.setValue('Attributes:\n')
    self.obj360.display.setHeight(15)

    # Actions
    self.obj360.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj360.Actions.setValue(lcobj2)

    # Constraints
    self.obj360.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj360.Constraints.setValue(lcobj2)

    self.obj360.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(860.0,1120.0,self.obj360)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.03125, 1.0]
    else: new_obj = None
    self.obj360.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj360)
    self.globalAndLocalPostcondition(self.obj360, rootNode)
    self.obj360.postAction( rootNode.CREATE )

    self.obj361=CD_Class3(self)
    self.obj361.isGraphObjectVisual = True

    if(hasattr(self.obj361, '_setHierarchicalLink')):
      self.obj361._setHierarchicalLink(False)

    # QOCA
    self.obj361.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj361.Graphical_Appearance.setValue( ('Protocol', self.obj361))

    # name
    self.obj361.name.setValue('Protocol')

    # attributes
    self.obj361.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj361.attributes.setValue(lcobj2)

    # Abstract
    self.obj361.Abstract.setValue((None, 0))
    self.obj361.Abstract.config = 0

    # cardinality
    self.obj361.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj361.cardinality.setValue(lcobj2)

    # display
    self.obj361.display.setValue('Attributes:\n')
    self.obj361.display.setHeight(15)

    # Actions
    self.obj361.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj361.Actions.setValue(lcobj2)

    # Constraints
    self.obj361.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj361.Constraints.setValue(lcobj2)

    self.obj361.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(400.0,1120.0,self.obj361)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj361.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj361)
    self.globalAndLocalPostcondition(self.obj361, rootNode)
    self.obj361.postAction( rootNode.CREATE )

    self.obj362=CD_Class3(self)
    self.obj362.isGraphObjectVisual = True

    if(hasattr(self.obj362, '_setHierarchicalLink')):
      self.obj362._setHierarchicalLink(False)

    # QOCA
    self.obj362.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj362.Graphical_Appearance.setValue( ('Signal', self.obj362))

    # name
    self.obj362.name.setValue('Signal')

    # attributes
    self.obj362.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj362.attributes.setValue(lcobj2)

    # Abstract
    self.obj362.Abstract.setValue((None, 0))
    self.obj362.Abstract.config = 0

    # cardinality
    self.obj362.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj362.cardinality.setValue(lcobj2)

    # display
    self.obj362.display.setValue('Attributes:\n')
    self.obj362.display.setHeight(15)

    # Actions
    self.obj362.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj362.Actions.setValue(lcobj2)

    # Constraints
    self.obj362.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj362.Constraints.setValue(lcobj2)

    self.obj362.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(440.0,1300.0,self.obj362)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj362.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj362)
    self.globalAndLocalPostcondition(self.obj362, rootNode)
    self.obj362.postAction( rootNode.CREATE )

    self.obj363=CD_Class3(self)
    self.obj363.isGraphObjectVisual = True

    if(hasattr(self.obj363, '_setHierarchicalLink')):
      self.obj363._setHierarchicalLink(False)

    # QOCA
    self.obj363.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj363.Graphical_Appearance.setValue( ('Port', self.obj363))

    # name
    self.obj363.name.setValue('Port')

    # attributes
    self.obj363.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj363.attributes.setValue(lcobj2)

    # Abstract
    self.obj363.Abstract.setValue((None, 0))
    self.obj363.Abstract.config = 0

    # cardinality
    self.obj363.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj363.cardinality.setValue(lcobj2)

    # display
    self.obj363.display.setValue('Attributes:\n')
    self.obj363.display.setHeight(15)

    # Actions
    self.obj363.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj363.Actions.setValue(lcobj2)

    # Constraints
    self.obj363.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj363.Constraints.setValue(lcobj2)

    self.obj363.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(640.0,1120.0,self.obj363)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj363.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj363)
    self.globalAndLocalPostcondition(self.obj363, rootNode)
    self.obj363.postAction( rootNode.CREATE )

    self.obj364=CD_Class3(self)
    self.obj364.isGraphObjectVisual = True

    if(hasattr(self.obj364, '_setHierarchicalLink')):
      self.obj364._setHierarchicalLink(False)

    # QOCA
    self.obj364.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj364.Graphical_Appearance.setValue( ('Vertex', self.obj364))

    # name
    self.obj364.name.setValue('Vertex')

    # attributes
    self.obj364.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj364.attributes.setValue(lcobj2)

    # Abstract
    self.obj364.Abstract.setValue((None, 0))
    self.obj364.Abstract.config = 0

    # cardinality
    self.obj364.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj364.cardinality.setValue(lcobj2)

    # display
    self.obj364.display.setValue('Attributes:\n')
    self.obj364.display.setHeight(15)

    # Actions
    self.obj364.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj364.Actions.setValue(lcobj2)

    # Constraints
    self.obj364.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj364.Constraints.setValue(lcobj2)

    self.obj364.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(720.0,1300.0,self.obj364)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj364.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj364)
    self.globalAndLocalPostcondition(self.obj364, rootNode)
    self.obj364.postAction( rootNode.CREATE )

    self.obj365=CD_Class3(self)
    self.obj365.isGraphObjectVisual = True

    if(hasattr(self.obj365, '_setHierarchicalLink')):
      self.obj365._setHierarchicalLink(False)

    # QOCA
    self.obj365.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj365.Graphical_Appearance.setValue( ('InitialPoint', self.obj365))

    # name
    self.obj365.name.setValue('InitialPoint')

    # attributes
    self.obj365.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj365.attributes.setValue(lcobj2)

    # Abstract
    self.obj365.Abstract.setValue((None, 0))
    self.obj365.Abstract.config = 0

    # cardinality
    self.obj365.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj365.cardinality.setValue(lcobj2)

    # display
    self.obj365.display.setValue('Attributes:\n')
    self.obj365.display.setHeight(15)

    # Actions
    self.obj365.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj365.Actions.setValue(lcobj2)

    # Constraints
    self.obj365.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj365.Constraints.setValue(lcobj2)

    self.obj365.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(700.0,1460.0,self.obj365)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj365.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj365)
    self.globalAndLocalPostcondition(self.obj365, rootNode)
    self.obj365.postAction( rootNode.CREATE )

    self.obj366=CD_Class3(self)
    self.obj366.isGraphObjectVisual = True

    if(hasattr(self.obj366, '_setHierarchicalLink')):
      self.obj366._setHierarchicalLink(False)

    # QOCA
    self.obj366.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj366.Graphical_Appearance.setValue( ('EntryPoint', self.obj366))

    # name
    self.obj366.name.setValue('EntryPoint')

    # attributes
    self.obj366.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj366.attributes.setValue(lcobj2)

    # Abstract
    self.obj366.Abstract.setValue((None, 0))
    self.obj366.Abstract.config = 0

    # cardinality
    self.obj366.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj366.cardinality.setValue(lcobj2)

    # display
    self.obj366.display.setValue('Attributes:\n')
    self.obj366.display.setHeight(15)

    # Actions
    self.obj366.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj366.Actions.setValue(lcobj2)

    # Constraints
    self.obj366.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj366.Constraints.setValue(lcobj2)

    self.obj366.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(720.0,1640.0,self.obj366)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj366.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj366)
    self.globalAndLocalPostcondition(self.obj366, rootNode)
    self.obj366.postAction( rootNode.CREATE )

    self.obj367=CD_Class3(self)
    self.obj367.isGraphObjectVisual = True

    if(hasattr(self.obj367, '_setHierarchicalLink')):
      self.obj367._setHierarchicalLink(False)

    # QOCA
    self.obj367.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj367.Graphical_Appearance.setValue( ('ExitPoint', self.obj367))

    # name
    self.obj367.name.setValue('ExitPoint')

    # attributes
    self.obj367.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj367.attributes.setValue(lcobj2)

    # Abstract
    self.obj367.Abstract.setValue((None, 0))
    self.obj367.Abstract.config = 0

    # cardinality
    self.obj367.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj367.cardinality.setValue(lcobj2)

    # display
    self.obj367.display.setValue('Attributes:\n')
    self.obj367.display.setHeight(15)

    # Actions
    self.obj367.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj367.Actions.setValue(lcobj2)

    # Constraints
    self.obj367.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj367.Constraints.setValue(lcobj2)

    self.obj367.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(940.0,1640.0,self.obj367)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj367.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj367)
    self.globalAndLocalPostcondition(self.obj367, rootNode)
    self.obj367.postAction( rootNode.CREATE )

    self.obj368=CD_Class3(self)
    self.obj368.isGraphObjectVisual = True

    if(hasattr(self.obj368, '_setHierarchicalLink')):
      self.obj368._setHierarchicalLink(False)

    # QOCA
    self.obj368.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj368.Graphical_Appearance.setValue( ('Transition', self.obj368))

    # name
    self.obj368.name.setValue('Transition')

    # attributes
    self.obj368.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj368.attributes.setValue(lcobj2)

    # Abstract
    self.obj368.Abstract.setValue((None, 0))
    self.obj368.Abstract.config = 0

    # cardinality
    self.obj368.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj368.cardinality.setValue(lcobj2)

    # display
    self.obj368.display.setValue('Attributes:\n')
    self.obj368.display.setHeight(15)

    # Actions
    self.obj368.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj368.Actions.setValue(lcobj2)

    # Constraints
    self.obj368.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj368.Constraints.setValue(lcobj2)

    self.obj368.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(960.0,1300.0,self.obj368)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj368.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj368)
    self.globalAndLocalPostcondition(self.obj368, rootNode)
    self.obj368.postAction( rootNode.CREATE )

    self.obj369=CD_Class3(self)
    self.obj369.isGraphObjectVisual = True

    if(hasattr(self.obj369, '_setHierarchicalLink')):
      self.obj369._setHierarchicalLink(False)

    # QOCA
    self.obj369.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj369.Graphical_Appearance.setValue( ('StateMachine', self.obj369))

    # name
    self.obj369.name.setValue('StateMachine')

    # attributes
    self.obj369.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj369.attributes.setValue(lcobj2)

    # Abstract
    self.obj369.Abstract.setValue((None, 0))
    self.obj369.Abstract.config = 0

    # cardinality
    self.obj369.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj369.cardinality.setValue(lcobj2)

    # display
    self.obj369.display.setValue('Attributes:\n')
    self.obj369.display.setHeight(15)

    # Actions
    self.obj369.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj369.Actions.setValue(lcobj2)

    # Constraints
    self.obj369.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj369.Constraints.setValue(lcobj2)

    self.obj369.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(1200.0,1300.0,self.obj369)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj369.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj369)
    self.globalAndLocalPostcondition(self.obj369, rootNode)
    self.obj369.postAction( rootNode.CREATE )

    self.obj370=CD_Class3(self)
    self.obj370.isGraphObjectVisual = True

    if(hasattr(self.obj370, '_setHierarchicalLink')):
      self.obj370._setHierarchicalLink(False)

    # QOCA
    self.obj370.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj370.Graphical_Appearance.setValue( ('State', self.obj370))

    # name
    self.obj370.name.setValue('State')

    # attributes
    self.obj370.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj370.attributes.setValue(lcobj2)

    # Abstract
    self.obj370.Abstract.setValue((None, 0))
    self.obj370.Abstract.config = 0

    # cardinality
    self.obj370.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj370.cardinality.setValue(lcobj2)

    # display
    self.obj370.display.setValue('Attributes:\n')
    self.obj370.display.setHeight(15)

    # Actions
    self.obj370.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj370.Actions.setValue(lcobj2)

    # Constraints
    self.obj370.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj370.Constraints.setValue(lcobj2)

    self.obj370.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(1000.0,1480.0,self.obj370)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj370.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj370)
    self.globalAndLocalPostcondition(self.obj370, rootNode)
    self.obj370.postAction( rootNode.CREATE )

    self.obj371=CD_Class3(self)
    self.obj371.isGraphObjectVisual = True

    if(hasattr(self.obj371, '_setHierarchicalLink')):
      self.obj371._setHierarchicalLink(False)

    # QOCA
    self.obj371.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj371.Graphical_Appearance.setValue( ('Capsule', self.obj371))

    # name
    self.obj371.name.setValue('Capsule')

    # attributes
    self.obj371.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj371.attributes.setValue(lcobj2)

    # Abstract
    self.obj371.Abstract.setValue((None, 0))
    self.obj371.Abstract.config = 0

    # cardinality
    self.obj371.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj371.cardinality.setValue(lcobj2)

    # display
    self.obj371.display.setValue('Attributes:\n')
    self.obj371.display.setHeight(15)

    # Actions
    self.obj371.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj371.Actions.setValue(lcobj2)

    # Constraints
    self.obj371.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj371.Constraints.setValue(lcobj2)

    self.obj371.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(1620.0,1300.0,self.obj371)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj371.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj371)
    self.globalAndLocalPostcondition(self.obj371, rootNode)
    self.obj371.postAction( rootNode.CREATE )

    self.obj372=CD_Class3(self)
    self.obj372.isGraphObjectVisual = True

    if(hasattr(self.obj372, '_setHierarchicalLink')):
      self.obj372._setHierarchicalLink(False)

    # QOCA
    self.obj372.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj372.Graphical_Appearance.setValue( ('PackageContainer', self.obj372))

    # name
    self.obj372.name.setValue('PackageContainer')

    # attributes
    self.obj372.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj372.attributes.setValue(lcobj2)

    # Abstract
    self.obj372.Abstract.setValue((None, 1))
    self.obj372.Abstract.config = 0

    # cardinality
    self.obj372.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj372.cardinality.setValue(lcobj2)

    # display
    self.obj372.display.setValue('Attributes:\n')
    self.obj372.display.setHeight(15)

    # Actions
    self.obj372.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj372.Actions.setValue(lcobj2)

    # Constraints
    self.obj372.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj372.Constraints.setValue(lcobj2)

    self.obj372.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(1420.0,1300.0,self.obj372)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj372.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj372)
    self.globalAndLocalPostcondition(self.obj372, rootNode)
    self.obj372.postAction( rootNode.CREATE )

    self.obj373=CD_Class3(self)
    self.obj373.isGraphObjectVisual = True

    if(hasattr(self.obj373, '_setHierarchicalLink')):
      self.obj373._setHierarchicalLink(False)

    # QOCA
    self.obj373.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj373.Graphical_Appearance.setValue( ('Model_S', self.obj373))

    # name
    self.obj373.name.setValue('Model_S')

    # attributes
    self.obj373.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj373.attributes.setValue(lcobj2)

    # Abstract
    self.obj373.Abstract.setValue((None, 0))
    self.obj373.Abstract.config = 0

    # cardinality
    self.obj373.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj373.cardinality.setValue(lcobj2)

    # display
    self.obj373.display.setValue('Attributes:\n')
    self.obj373.display.setHeight(15)

    # Actions
    self.obj373.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj373.Actions.setValue(lcobj2)

    # Constraints
    self.obj373.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj373.Constraints.setValue(lcobj2)

    self.obj373.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(1260.0,1480.0,self.obj373)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj373.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj373)
    self.globalAndLocalPostcondition(self.obj373, rootNode)
    self.obj373.postAction( rootNode.CREATE )

    self.obj374=CD_Class3(self)
    self.obj374.isGraphObjectVisual = True

    if(hasattr(self.obj374, '_setHierarchicalLink')):
      self.obj374._setHierarchicalLink(False)

    # QOCA
    self.obj374.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj374.Graphical_Appearance.setValue( ('Package', self.obj374))

    # name
    self.obj374.name.setValue('Package')

    # attributes
    self.obj374.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj374.attributes.setValue(lcobj2)

    # Abstract
    self.obj374.Abstract.setValue((None, 0))
    self.obj374.Abstract.config = 0

    # cardinality
    self.obj374.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj374.cardinality.setValue(lcobj2)

    # display
    self.obj374.display.setValue('Attributes:\n')
    self.obj374.display.setHeight(15)

    # Actions
    self.obj374.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj374.Actions.setValue(lcobj2)

    # Constraints
    self.obj374.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj374.Constraints.setValue(lcobj2)

    self.obj374.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(1500.0,1480.0,self.obj374)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj374.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj374)
    self.globalAndLocalPostcondition(self.obj374, rootNode)
    self.obj374.postAction( rootNode.CREATE )

    self.obj375=CD_Class3(self)
    self.obj375.isGraphObjectVisual = True

    if(hasattr(self.obj375, '_setHierarchicalLink')):
      self.obj375._setHierarchicalLink(False)

    # QOCA
    self.obj375.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj375.Graphical_Appearance.setValue( ('CapsuleRole', self.obj375))

    # name
    self.obj375.name.setValue('CapsuleRole')

    # attributes
    self.obj375.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj375.attributes.setValue(lcobj2)

    # Abstract
    self.obj375.Abstract.setValue((None, 0))
    self.obj375.Abstract.config = 0

    # cardinality
    self.obj375.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj375.cardinality.setValue(lcobj2)

    # display
    self.obj375.display.setValue('Attributes:\n')
    self.obj375.display.setHeight(15)

    # Actions
    self.obj375.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj375.Actions.setValue(lcobj2)

    # Constraints
    self.obj375.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj375.Constraints.setValue(lcobj2)

    self.obj375.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(1820.0,1300.0,self.obj375)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj375.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj375)
    self.globalAndLocalPostcondition(self.obj375, rootNode)
    self.obj375.postAction( rootNode.CREATE )

    self.obj376=CD_Class3(self)
    self.obj376.isGraphObjectVisual = True

    if(hasattr(self.obj376, '_setHierarchicalLink')):
      self.obj376._setHierarchicalLink(False)

    # QOCA
    self.obj376.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj376.Graphical_Appearance.setValue( ('PortConnector', self.obj376))

    # name
    self.obj376.name.setValue('PortConnector')

    # attributes
    self.obj376.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj376.attributes.setValue(lcobj2)

    # Abstract
    self.obj376.Abstract.setValue((None, 0))
    self.obj376.Abstract.config = 0

    # cardinality
    self.obj376.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj376.cardinality.setValue(lcobj2)

    # display
    self.obj376.display.setValue('Attributes:\n')
    self.obj376.display.setHeight(15)

    # Actions
    self.obj376.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj376.Actions.setValue(lcobj2)

    # Constraints
    self.obj376.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj376.Constraints.setValue(lcobj2)

    self.obj376.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(2020.0,1300.0,self.obj376)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj376.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj376)
    self.globalAndLocalPostcondition(self.obj376, rootNode)
    self.obj376.postAction( rootNode.CREATE )

    self.obj377=CD_Class3(self)
    self.obj377.isGraphObjectVisual = True

    if(hasattr(self.obj377, '_setHierarchicalLink')):
      self.obj377._setHierarchicalLink(False)

    # QOCA
    self.obj377.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj377.Graphical_Appearance.setValue( ('Thread', self.obj377))

    # name
    self.obj377.name.setValue('Thread')

    # attributes
    self.obj377.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj377.attributes.setValue(lcobj2)

    # Abstract
    self.obj377.Abstract.setValue((None, 1))
    self.obj377.Abstract.config = 0

    # cardinality
    self.obj377.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj377.cardinality.setValue(lcobj2)

    # display
    self.obj377.display.setValue('Attributes:\n')
    self.obj377.display.setHeight(15)

    # Actions
    self.obj377.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj377.Actions.setValue(lcobj2)

    # Constraints
    self.obj377.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj377.Constraints.setValue(lcobj2)

    self.obj377.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(2240.0,1300.0,self.obj377)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj377.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj377)
    self.globalAndLocalPostcondition(self.obj377, rootNode)
    self.obj377.postAction( rootNode.CREATE )

    self.obj378=CD_Class3(self)
    self.obj378.isGraphObjectVisual = True

    if(hasattr(self.obj378, '_setHierarchicalLink')):
      self.obj378._setHierarchicalLink(False)

    # QOCA
    self.obj378.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj378.Graphical_Appearance.setValue( ('PhysicalThread', self.obj378))

    # name
    self.obj378.name.setValue('PhysicalThread')

    # attributes
    self.obj378.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj378.attributes.setValue(lcobj2)

    # Abstract
    self.obj378.Abstract.setValue((None, 0))
    self.obj378.Abstract.config = 0

    # cardinality
    self.obj378.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj378.cardinality.setValue(lcobj2)

    # display
    self.obj378.display.setValue('Attributes:\n')
    self.obj378.display.setHeight(15)

    # Actions
    self.obj378.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj378.Actions.setValue(lcobj2)

    # Constraints
    self.obj378.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj378.Constraints.setValue(lcobj2)

    self.obj378.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(2020.0,1480.0,self.obj378)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj378.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj378)
    self.globalAndLocalPostcondition(self.obj378, rootNode)
    self.obj378.postAction( rootNode.CREATE )

    self.obj379=CD_Class3(self)
    self.obj379.isGraphObjectVisual = True

    if(hasattr(self.obj379, '_setHierarchicalLink')):
      self.obj379._setHierarchicalLink(False)

    # QOCA
    self.obj379.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj379.Graphical_Appearance.setValue( ('LogicalThread', self.obj379))

    # name
    self.obj379.name.setValue('LogicalThread')

    # attributes
    self.obj379.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj379.attributes.setValue(lcobj2)

    # Abstract
    self.obj379.Abstract.setValue((None, 0))
    self.obj379.Abstract.config = 0

    # cardinality
    self.obj379.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj379.cardinality.setValue(lcobj2)

    # display
    self.obj379.display.setValue('Attributes:\n')
    self.obj379.display.setHeight(15)

    # Actions
    self.obj379.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj379.Actions.setValue(lcobj2)

    # Constraints
    self.obj379.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj379.Constraints.setValue(lcobj2)

    self.obj379.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(2260.0,1480.0,self.obj379)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj379.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj379)
    self.globalAndLocalPostcondition(self.obj379, rootNode)
    self.obj379.postAction( rootNode.CREATE )

    self.obj380=CD_Class3(self)
    self.obj380.isGraphObjectVisual = True

    if(hasattr(self.obj380, '_setHierarchicalLink')):
      self.obj380._setHierarchicalLink(False)

    # QOCA
    self.obj380.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj380.Graphical_Appearance.setValue( ('PortType', self.obj380))

    # name
    self.obj380.name.setValue('PortType')

    # attributes
    self.obj380.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj380.attributes.setValue(lcobj2)

    # Abstract
    self.obj380.Abstract.setValue((None, 1))
    self.obj380.Abstract.config = 0

    # cardinality
    self.obj380.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj380.cardinality.setValue(lcobj2)

    # display
    self.obj380.display.setValue('Attributes:\n')
    self.obj380.display.setHeight(15)

    # Actions
    self.obj380.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj380.Actions.setValue(lcobj2)

    # Constraints
    self.obj380.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj380.Constraints.setValue(lcobj2)

    self.obj380.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(620.0,360.0,self.obj380)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj380.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj380)
    self.globalAndLocalPostcondition(self.obj380, rootNode)
    self.obj380.postAction( rootNode.CREATE )

    self.obj381=CD_Class3(self)
    self.obj381.isGraphObjectVisual = True

    if(hasattr(self.obj381, '_setHierarchicalLink')):
      self.obj381._setHierarchicalLink(False)

    # QOCA
    self.obj381.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj381.Graphical_Appearance.setValue( ('BASE0', self.obj381))

    # name
    self.obj381.name.setValue('BASE0')

    # attributes
    self.obj381.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj381.attributes.setValue(lcobj2)

    # Abstract
    self.obj381.Abstract.setValue((None, 0))
    self.obj381.Abstract.config = 0

    # cardinality
    self.obj381.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj381.cardinality.setValue(lcobj2)

    # display
    self.obj381.display.setValue('Attributes:\n')
    self.obj381.display.setHeight(15)

    # Actions
    self.obj381.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj381.Actions.setValue(lcobj2)

    # Constraints
    self.obj381.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj381.Constraints.setValue(lcobj2)

    self.obj381.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(580.0,520.0,self.obj381)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj381.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj381)
    self.globalAndLocalPostcondition(self.obj381, rootNode)
    self.obj381.postAction( rootNode.CREATE )

    self.obj382=CD_Class3(self)
    self.obj382.isGraphObjectVisual = True

    if(hasattr(self.obj382, '_setHierarchicalLink')):
      self.obj382._setHierarchicalLink(False)

    # QOCA
    self.obj382.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj382.Graphical_Appearance.setValue( ('CONJUGATE1', self.obj382))

    # name
    self.obj382.name.setValue('CONJUGATE1')

    # attributes
    self.obj382.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj382.attributes.setValue(lcobj2)

    # Abstract
    self.obj382.Abstract.setValue((None, 0))
    self.obj382.Abstract.config = 0

    # cardinality
    self.obj382.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj382.cardinality.setValue(lcobj2)

    # display
    self.obj382.display.setValue('Attributes:\n')
    self.obj382.display.setHeight(15)

    # Actions
    self.obj382.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj382.Actions.setValue(lcobj2)

    # Constraints
    self.obj382.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj382.Constraints.setValue(lcobj2)

    self.obj382.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(613.0,680.0,self.obj382)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj382.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj382)
    self.globalAndLocalPostcondition(self.obj382, rootNode)
    self.obj382.postAction( rootNode.CREATE )

    self.obj383=CD_Class3(self)
    self.obj383.isGraphObjectVisual = True

    if(hasattr(self.obj383, '_setHierarchicalLink')):
      self.obj383._setHierarchicalLink(False)

    # QOCA
    self.obj383.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj383.Graphical_Appearance.setValue( ('SignalType', self.obj383))

    # name
    self.obj383.name.setValue('SignalType')

    # attributes
    self.obj383.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj383.attributes.setValue(lcobj2)

    # Abstract
    self.obj383.Abstract.setValue((None, 1))
    self.obj383.Abstract.config = 0

    # cardinality
    self.obj383.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj383.cardinality.setValue(lcobj2)

    # display
    self.obj383.display.setValue('Attributes:\n')
    self.obj383.display.setHeight(15)

    # Actions
    self.obj383.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj383.Actions.setValue(lcobj2)

    # Constraints
    self.obj383.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj383.Constraints.setValue(lcobj2)

    self.obj383.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(860.0,360.0,self.obj383)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj383.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj383)
    self.globalAndLocalPostcondition(self.obj383, rootNode)
    self.obj383.postAction( rootNode.CREATE )

    self.obj384=CD_Class3(self)
    self.obj384.isGraphObjectVisual = True

    if(hasattr(self.obj384, '_setHierarchicalLink')):
      self.obj384._setHierarchicalLink(False)

    # QOCA
    self.obj384.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj384.Graphical_Appearance.setValue( ('OUT1', self.obj384))

    # name
    self.obj384.name.setValue('OUT1')

    # attributes
    self.obj384.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj384.attributes.setValue(lcobj2)

    # Abstract
    self.obj384.Abstract.setValue((None, 0))
    self.obj384.Abstract.config = 0

    # cardinality
    self.obj384.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj384.cardinality.setValue(lcobj2)

    # display
    self.obj384.display.setValue('Attributes:\n')
    self.obj384.display.setHeight(15)

    # Actions
    self.obj384.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj384.Actions.setValue(lcobj2)

    # Constraints
    self.obj384.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj384.Constraints.setValue(lcobj2)

    self.obj384.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(860.0,680.0,self.obj384)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj384.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj384)
    self.globalAndLocalPostcondition(self.obj384, rootNode)
    self.obj384.postAction( rootNode.CREATE )

    self.obj385=CD_Class3(self)
    self.obj385.isGraphObjectVisual = True

    if(hasattr(self.obj385, '_setHierarchicalLink')):
      self.obj385._setHierarchicalLink(False)

    # QOCA
    self.obj385.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj385.Graphical_Appearance.setValue( ('IN0', self.obj385))

    # name
    self.obj385.name.setValue('IN0')

    # attributes
    self.obj385.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj385.attributes.setValue(lcobj2)

    # Abstract
    self.obj385.Abstract.setValue((None, 0))
    self.obj385.Abstract.config = 0

    # cardinality
    self.obj385.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj385.cardinality.setValue(lcobj2)

    # display
    self.obj385.display.setValue('Attributes:\n')
    self.obj385.display.setHeight(15)

    # Actions
    self.obj385.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj385.Actions.setValue(lcobj2)

    # Constraints
    self.obj385.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj385.Constraints.setValue(lcobj2)

    self.obj385.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(820.0,520.0,self.obj385)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj385.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj385)
    self.globalAndLocalPostcondition(self.obj385, rootNode)
    self.obj385.postAction( rootNode.CREATE )

    self.obj386=CD_Class3(self)
    self.obj386.isGraphObjectVisual = True

    if(hasattr(self.obj386, '_setHierarchicalLink')):
      self.obj386._setHierarchicalLink(False)

    # QOCA
    self.obj386.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj386.Graphical_Appearance.setValue( ('RoleType', self.obj386))

    # name
    self.obj386.name.setValue('RoleType')

    # attributes
    self.obj386.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj386.attributes.setValue(lcobj2)

    # Abstract
    self.obj386.Abstract.setValue((None, 1))
    self.obj386.Abstract.config = 0

    # cardinality
    self.obj386.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj386.cardinality.setValue(lcobj2)

    # display
    self.obj386.display.setValue('Attributes:\n')
    self.obj386.display.setHeight(15)

    # Actions
    self.obj386.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj386.Actions.setValue(lcobj2)

    # Constraints
    self.obj386.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj386.Constraints.setValue(lcobj2)

    self.obj386.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(1080.0,360.0,self.obj386)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj386.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj386)
    self.globalAndLocalPostcondition(self.obj386, rootNode)
    self.obj386.postAction( rootNode.CREATE )

    self.obj387=CD_Class3(self)
    self.obj387.isGraphObjectVisual = True

    if(hasattr(self.obj387, '_setHierarchicalLink')):
      self.obj387._setHierarchicalLink(False)

    # QOCA
    self.obj387.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj387.Graphical_Appearance.setValue( ('FIXED0', self.obj387))

    # name
    self.obj387.name.setValue('FIXED0')

    # attributes
    self.obj387.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj387.attributes.setValue(lcobj2)

    # Abstract
    self.obj387.Abstract.setValue((None, 0))
    self.obj387.Abstract.config = 0

    # cardinality
    self.obj387.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj387.cardinality.setValue(lcobj2)

    # display
    self.obj387.display.setValue('Attributes:\n')
    self.obj387.display.setHeight(15)

    # Actions
    self.obj387.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj387.Actions.setValue(lcobj2)

    # Constraints
    self.obj387.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj387.Constraints.setValue(lcobj2)

    self.obj387.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(1040.0,520.0,self.obj387)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj387.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj387)
    self.globalAndLocalPostcondition(self.obj387, rootNode)
    self.obj387.postAction( rootNode.CREATE )

    self.obj388=CD_Class3(self)
    self.obj388.isGraphObjectVisual = True

    if(hasattr(self.obj388, '_setHierarchicalLink')):
      self.obj388._setHierarchicalLink(False)

    # QOCA
    self.obj388.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj388.Graphical_Appearance.setValue( ('OPTIONAL1', self.obj388))

    # name
    self.obj388.name.setValue('OPTIONAL1')

    # attributes
    self.obj388.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj388.attributes.setValue(lcobj2)

    # Abstract
    self.obj388.Abstract.setValue((None, 0))
    self.obj388.Abstract.config = 0

    # cardinality
    self.obj388.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj388.cardinality.setValue(lcobj2)

    # display
    self.obj388.display.setValue('Attributes:\n')
    self.obj388.display.setHeight(15)

    # Actions
    self.obj388.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj388.Actions.setValue(lcobj2)

    # Constraints
    self.obj388.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj388.Constraints.setValue(lcobj2)

    self.obj388.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(1080.0,680.0,self.obj388)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj388.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj388)
    self.globalAndLocalPostcondition(self.obj388, rootNode)
    self.obj388.postAction( rootNode.CREATE )

    self.obj389=CD_Class3(self)
    self.obj389.isGraphObjectVisual = True

    if(hasattr(self.obj389, '_setHierarchicalLink')):
      self.obj389._setHierarchicalLink(False)

    # QOCA
    self.obj389.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj389.Graphical_Appearance.setValue( ('PLUGIN2', self.obj389))

    # name
    self.obj389.name.setValue('PLUGIN2')

    # attributes
    self.obj389.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj389.attributes.setValue(lcobj2)

    # Abstract
    self.obj389.Abstract.setValue((None, 0))
    self.obj389.Abstract.config = 0

    # cardinality
    self.obj389.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj389.cardinality.setValue(lcobj2)

    # display
    self.obj389.display.setValue('Attributes:\n')
    self.obj389.display.setHeight(15)

    # Actions
    self.obj389.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj389.Actions.setValue(lcobj2)

    # Constraints
    self.obj389.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj389.Constraints.setValue(lcobj2)

    self.obj389.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(1100.0,840.0,self.obj389)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj389.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj389)
    self.globalAndLocalPostcondition(self.obj389, rootNode)
    self.obj389.postAction( rootNode.CREATE )

    self.obj390=CD_Class3(self)
    self.obj390.isGraphObjectVisual = True

    if(hasattr(self.obj390, '_setHierarchicalLink')):
      self.obj390._setHierarchicalLink(False)

    # QOCA
    self.obj390.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj390.Graphical_Appearance.setValue( ('TransitionType', self.obj390))

    # name
    self.obj390.name.setValue('TransitionType')

    # attributes
    self.obj390.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj390.attributes.setValue(lcobj2)

    # Abstract
    self.obj390.Abstract.setValue((None, 1))
    self.obj390.Abstract.config = 0

    # cardinality
    self.obj390.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj390.cardinality.setValue(lcobj2)

    # display
    self.obj390.display.setValue('Attributes:\n')
    self.obj390.display.setHeight(15)

    # Actions
    self.obj390.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj390.Actions.setValue(lcobj2)

    # Constraints
    self.obj390.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj390.Constraints.setValue(lcobj2)

    self.obj390.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(1380.0,400.0,self.obj390)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj390.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj390)
    self.globalAndLocalPostcondition(self.obj390, rootNode)
    self.obj390.postAction( rootNode.CREATE )

    self.obj391=CD_Class3(self)
    self.obj391.isGraphObjectVisual = True

    if(hasattr(self.obj391, '_setHierarchicalLink')):
      self.obj391._setHierarchicalLink(False)

    # QOCA
    self.obj391.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj391.Graphical_Appearance.setValue( ('SIBLING0', self.obj391))

    # name
    self.obj391.name.setValue('SIBLING0')

    # attributes
    self.obj391.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj391.attributes.setValue(lcobj2)

    # Abstract
    self.obj391.Abstract.setValue((None, 0))
    self.obj391.Abstract.config = 0

    # cardinality
    self.obj391.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj391.cardinality.setValue(lcobj2)

    # display
    self.obj391.display.setValue('Attributes:\n')
    self.obj391.display.setHeight(15)

    # Actions
    self.obj391.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj391.Actions.setValue(lcobj2)

    # Constraints
    self.obj391.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj391.Constraints.setValue(lcobj2)

    self.obj391.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(1300.0,560.0,self.obj391)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj391.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj391)
    self.globalAndLocalPostcondition(self.obj391, rootNode)
    self.obj391.postAction( rootNode.CREATE )

    self.obj392=CD_Class3(self)
    self.obj392.isGraphObjectVisual = True

    if(hasattr(self.obj392, '_setHierarchicalLink')):
      self.obj392._setHierarchicalLink(False)

    # QOCA
    self.obj392.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj392.Graphical_Appearance.setValue( ('IN1', self.obj392))

    # name
    self.obj392.name.setValue('IN1')

    # attributes
    self.obj392.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj392.attributes.setValue(lcobj2)

    # Abstract
    self.obj392.Abstract.setValue((None, 0))
    self.obj392.Abstract.config = 0

    # cardinality
    self.obj392.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj392.cardinality.setValue(lcobj2)

    # display
    self.obj392.display.setValue('Attributes:\n')
    self.obj392.display.setHeight(15)

    # Actions
    self.obj392.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj392.Actions.setValue(lcobj2)

    # Constraints
    self.obj392.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj392.Constraints.setValue(lcobj2)

    self.obj392.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(1340.0,720.0,self.obj392)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj392.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj392)
    self.globalAndLocalPostcondition(self.obj392, rootNode)
    self.obj392.postAction( rootNode.CREATE )

    self.obj393=CD_Class3(self)
    self.obj393.isGraphObjectVisual = True

    if(hasattr(self.obj393, '_setHierarchicalLink')):
      self.obj393._setHierarchicalLink(False)

    # QOCA
    self.obj393.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj393.Graphical_Appearance.setValue( ('OUT2', self.obj393))

    # name
    self.obj393.name.setValue('OUT2')

    # attributes
    self.obj393.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj393.attributes.setValue(lcobj2)

    # Abstract
    self.obj393.Abstract.setValue((None, 0))
    self.obj393.Abstract.config = 0

    # cardinality
    self.obj393.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj393.cardinality.setValue(lcobj2)

    # display
    self.obj393.display.setValue('Attributes:\n')
    self.obj393.display.setHeight(15)

    # Actions
    self.obj393.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj393.Actions.setValue(lcobj2)

    # Constraints
    self.obj393.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj393.Constraints.setValue(lcobj2)

    self.obj393.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(1400.0,880.0,self.obj393)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj393.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj393)
    self.globalAndLocalPostcondition(self.obj393, rootNode)
    self.obj393.postAction( rootNode.CREATE )

    self.obj394=CD_Class3(self)
    self.obj394.isGraphObjectVisual = True

    if(hasattr(self.obj394, '_setHierarchicalLink')):
      self.obj394._setHierarchicalLink(False)

    # QOCA
    self.obj394.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj394.Graphical_Appearance.setValue( ('Def', self.obj394))

    # name
    self.obj394.name.setValue('Def')

    # attributes
    self.obj394.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj394.attributes.setValue(lcobj2)

    # Abstract
    self.obj394.Abstract.setValue((None, 1))
    self.obj394.Abstract.config = 0

    # cardinality
    self.obj394.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj394.cardinality.setValue(lcobj2)

    # display
    self.obj394.display.setValue('Attributes:\n')
    self.obj394.display.setHeight(15)

    # Actions
    self.obj394.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj394.Actions.setValue(lcobj2)

    # Constraints
    self.obj394.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj394.Constraints.setValue(lcobj2)

    self.obj394.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(100.0,2080.0,self.obj394)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj394.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj394)
    self.globalAndLocalPostcondition(self.obj394, rootNode)
    self.obj394.postAction( rootNode.CREATE )

    self.obj395=CD_Class3(self)
    self.obj395.isGraphObjectVisual = True

    if(hasattr(self.obj395, '_setHierarchicalLink')):
      self.obj395._setHierarchicalLink(False)

    # QOCA
    self.obj395.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj395.Graphical_Appearance.setValue( ('Expr', self.obj395))

    # name
    self.obj395.name.setValue('Expr')

    # attributes
    self.obj395.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj395.attributes.setValue(lcobj2)

    # Abstract
    self.obj395.Abstract.setValue((None, 0))
    self.obj395.Abstract.config = 0

    # cardinality
    self.obj395.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj395.cardinality.setValue(lcobj2)

    # display
    self.obj395.display.setValue('Attributes:\n')
    self.obj395.display.setHeight(15)

    # Actions
    self.obj395.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj395.Actions.setValue(lcobj2)

    # Constraints
    self.obj395.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj395.Constraints.setValue(lcobj2)

    self.obj395.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(320.0,2080.0,self.obj395)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj395.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj395)
    self.globalAndLocalPostcondition(self.obj395, rootNode)
    self.obj395.postAction( rootNode.CREATE )

    self.obj396=CD_Class3(self)
    self.obj396.isGraphObjectVisual = True

    if(hasattr(self.obj396, '_setHierarchicalLink')):
      self.obj396._setHierarchicalLink(False)

    # QOCA
    self.obj396.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj396.Graphical_Appearance.setValue( ('Pattern', self.obj396))

    # name
    self.obj396.name.setValue('Pattern')

    # attributes
    self.obj396.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj396.attributes.setValue(lcobj2)

    # Abstract
    self.obj396.Abstract.setValue((None, 0))
    self.obj396.Abstract.config = 0

    # cardinality
    self.obj396.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj396.cardinality.setValue(lcobj2)

    # display
    self.obj396.display.setValue('Attributes:\n')
    self.obj396.display.setHeight(15)

    # Actions
    self.obj396.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj396.Actions.setValue(lcobj2)

    # Constraints
    self.obj396.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj396.Constraints.setValue(lcobj2)

    self.obj396.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(540.0,2080.0,self.obj396)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj396.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj396)
    self.globalAndLocalPostcondition(self.obj396, rootNode)
    self.obj396.postAction( rootNode.CREATE )

    self.obj397=CD_Class3(self)
    self.obj397.isGraphObjectVisual = True

    if(hasattr(self.obj397, '_setHierarchicalLink')):
      self.obj397._setHierarchicalLink(False)

    # QOCA
    self.obj397.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj397.Graphical_Appearance.setValue( ('Proc', self.obj397))

    # name
    self.obj397.name.setValue('Proc')

    # attributes
    self.obj397.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj397.attributes.setValue(lcobj2)

    # Abstract
    self.obj397.Abstract.setValue((None, 1))
    self.obj397.Abstract.config = 0

    # cardinality
    self.obj397.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj397.cardinality.setValue(lcobj2)

    # display
    self.obj397.display.setValue('Attributes:\n')
    self.obj397.display.setHeight(15)

    # Actions
    self.obj397.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj397.Actions.setValue(lcobj2)

    # Constraints
    self.obj397.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj397.Constraints.setValue(lcobj2)

    self.obj397.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(1940.0,2080.0,self.obj397)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj397.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj397)
    self.globalAndLocalPostcondition(self.obj397, rootNode)
    self.obj397.postAction( rootNode.CREATE )

    self.obj398=CD_Class3(self)
    self.obj398.isGraphObjectVisual = True

    if(hasattr(self.obj398, '_setHierarchicalLink')):
      self.obj398._setHierarchicalLink(False)

    # QOCA
    self.obj398.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj398.Graphical_Appearance.setValue( ('ProcDef', self.obj398))

    # name
    self.obj398.name.setValue('ProcDef')

    # attributes
    self.obj398.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj398.attributes.setValue(lcobj2)

    # Abstract
    self.obj398.Abstract.setValue((None, 0))
    self.obj398.Abstract.config = 0

    # cardinality
    self.obj398.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj398.cardinality.setValue(lcobj2)

    # display
    self.obj398.display.setValue('Attributes:\n')
    self.obj398.display.setHeight(15)

    # Actions
    self.obj398.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj398.Actions.setValue(lcobj2)

    # Constraints
    self.obj398.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj398.Constraints.setValue(lcobj2)

    self.obj398.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(15.0,2260.0,self.obj398)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj398.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj398)
    self.globalAndLocalPostcondition(self.obj398, rootNode)
    self.obj398.postAction( rootNode.CREATE )

    self.obj399=CD_Class3(self)
    self.obj399.isGraphObjectVisual = True

    if(hasattr(self.obj399, '_setHierarchicalLink')):
      self.obj399._setHierarchicalLink(False)

    # QOCA
    self.obj399.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj399.Graphical_Appearance.setValue( ('FuncDef', self.obj399))

    # name
    self.obj399.name.setValue('FuncDef')

    # attributes
    self.obj399.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj399.attributes.setValue(lcobj2)

    # Abstract
    self.obj399.Abstract.setValue((None, 0))
    self.obj399.Abstract.config = 0

    # cardinality
    self.obj399.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj399.cardinality.setValue(lcobj2)

    # display
    self.obj399.display.setValue('Attributes:\n')
    self.obj399.display.setHeight(15)

    # Actions
    self.obj399.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj399.Actions.setValue(lcobj2)

    # Constraints
    self.obj399.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj399.Constraints.setValue(lcobj2)

    self.obj399.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(60.0,2600.0,self.obj399)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj399.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj399)
    self.globalAndLocalPostcondition(self.obj399, rootNode)
    self.obj399.postAction( rootNode.CREATE )

    self.obj400=CD_Class3(self)
    self.obj400.isGraphObjectVisual = True

    if(hasattr(self.obj400, '_setHierarchicalLink')):
      self.obj400._setHierarchicalLink(False)

    # QOCA
    self.obj400.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj400.Graphical_Appearance.setValue( ('Name', self.obj400))

    # name
    self.obj400.name.setValue('Name')

    # attributes
    self.obj400.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj400.attributes.setValue(lcobj2)

    # Abstract
    self.obj400.Abstract.setValue((None, 0))
    self.obj400.Abstract.config = 0

    # cardinality
    self.obj400.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj400.cardinality.setValue(lcobj2)

    # display
    self.obj400.display.setValue('Attributes:\n')
    self.obj400.display.setHeight(15)

    # Actions
    self.obj400.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj400.Actions.setValue(lcobj2)

    # Constraints
    self.obj400.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj400.Constraints.setValue(lcobj2)

    self.obj400.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(740.0,2080.0,self.obj400)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj400.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj400)
    self.globalAndLocalPostcondition(self.obj400, rootNode)
    self.obj400.postAction( rootNode.CREATE )

    self.obj401=CD_Class3(self)
    self.obj401.isGraphObjectVisual = True

    if(hasattr(self.obj401, '_setHierarchicalLink')):
      self.obj401._setHierarchicalLink(False)

    # QOCA
    self.obj401.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj401.Graphical_Appearance.setValue( ('PythonRef', self.obj401))

    # name
    self.obj401.name.setValue('PythonRef')

    # attributes
    self.obj401.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj401.attributes.setValue(lcobj2)

    # Abstract
    self.obj401.Abstract.setValue((None, 0))
    self.obj401.Abstract.config = 0

    # cardinality
    self.obj401.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj401.cardinality.setValue(lcobj2)

    # display
    self.obj401.display.setValue('Attributes:\n')
    self.obj401.display.setHeight(15)

    # Actions
    self.obj401.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj401.Actions.setValue(lcobj2)

    # Constraints
    self.obj401.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj401.Constraints.setValue(lcobj2)

    self.obj401.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(740.0,2260.0,self.obj401)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj401.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj401)
    self.globalAndLocalPostcondition(self.obj401, rootNode)
    self.obj401.postAction( rootNode.CREATE )

    self.obj402=CD_Class3(self)
    self.obj402.isGraphObjectVisual = True

    if(hasattr(self.obj402, '_setHierarchicalLink')):
      self.obj402._setHierarchicalLink(False)

    # QOCA
    self.obj402.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj402.Graphical_Appearance.setValue( ('Module', self.obj402))

    # name
    self.obj402.name.setValue('Module')

    # attributes
    self.obj402.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj402.attributes.setValue(lcobj2)

    # Abstract
    self.obj402.Abstract.setValue((None, 0))
    self.obj402.Abstract.config = 0

    # cardinality
    self.obj402.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj402.cardinality.setValue(lcobj2)

    # display
    self.obj402.display.setValue('Attributes:\n')
    self.obj402.display.setHeight(15)

    # Actions
    self.obj402.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj402.Actions.setValue(lcobj2)

    # Constraints
    self.obj402.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj402.Constraints.setValue(lcobj2)

    self.obj402.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(20.0,2440.0,self.obj402)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj402.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj402)
    self.globalAndLocalPostcondition(self.obj402, rootNode)
    self.obj402.postAction( rootNode.CREATE )

    self.obj403=CD_Class3(self)
    self.obj403.isGraphObjectVisual = True

    if(hasattr(self.obj403, '_setHierarchicalLink')):
      self.obj403._setHierarchicalLink(False)

    # QOCA
    self.obj403.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj403.Graphical_Appearance.setValue( ('Null', self.obj403))

    # name
    self.obj403.name.setValue('Null')

    # attributes
    self.obj403.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj403.attributes.setValue(lcobj2)

    # Abstract
    self.obj403.Abstract.setValue((None, 0))
    self.obj403.Abstract.config = 0

    # cardinality
    self.obj403.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj403.cardinality.setValue(lcobj2)

    # display
    self.obj403.display.setValue('Attributes:\n')
    self.obj403.display.setHeight(15)

    # Actions
    self.obj403.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj403.Actions.setValue(lcobj2)

    # Constraints
    self.obj403.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj403.Constraints.setValue(lcobj2)

    self.obj403.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(1820.0,2260.0,self.obj403)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj403.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj403)
    self.globalAndLocalPostcondition(self.obj403, rootNode)
    self.obj403.postAction( rootNode.CREATE )

    self.obj404=CD_Class3(self)
    self.obj404.isGraphObjectVisual = True

    if(hasattr(self.obj404, '_setHierarchicalLink')):
      self.obj404._setHierarchicalLink(False)

    # QOCA
    self.obj404.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj404.Graphical_Appearance.setValue( ('Trigger_T', self.obj404))

    # name
    self.obj404.name.setValue('Trigger_T')

    # attributes
    self.obj404.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj404.attributes.setValue(lcobj2)

    # Abstract
    self.obj404.Abstract.setValue((None, 0))
    self.obj404.Abstract.config = 0

    # cardinality
    self.obj404.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj404.cardinality.setValue(lcobj2)

    # display
    self.obj404.display.setValue('Attributes:\n')
    self.obj404.display.setHeight(15)

    # Actions
    self.obj404.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj404.Actions.setValue(lcobj2)

    # Constraints
    self.obj404.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj404.Constraints.setValue(lcobj2)

    self.obj404.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(2040.0,2260.0,self.obj404)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj404.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj404)
    self.globalAndLocalPostcondition(self.obj404, rootNode)
    self.obj404.postAction( rootNode.CREATE )

    self.obj405=CD_Class3(self)
    self.obj405.isGraphObjectVisual = True

    if(hasattr(self.obj405, '_setHierarchicalLink')):
      self.obj405._setHierarchicalLink(False)

    # QOCA
    self.obj405.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj405.Graphical_Appearance.setValue( ('Listen', self.obj405))

    # name
    self.obj405.name.setValue('Listen')

    # attributes
    self.obj405.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj405.attributes.setValue(lcobj2)

    # Abstract
    self.obj405.Abstract.setValue((None, 0))
    self.obj405.Abstract.config = 0

    # cardinality
    self.obj405.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj405.cardinality.setValue(lcobj2)

    # display
    self.obj405.display.setValue('Attributes:\n')
    self.obj405.display.setHeight(15)

    # Actions
    self.obj405.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj405.Actions.setValue(lcobj2)

    # Constraints
    self.obj405.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj405.Constraints.setValue(lcobj2)

    self.obj405.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(2260.0,2260.0,self.obj405)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj405.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj405)
    self.globalAndLocalPostcondition(self.obj405, rootNode)
    self.obj405.postAction( rootNode.CREATE )

    self.obj406=CD_Class3(self)
    self.obj406.isGraphObjectVisual = True

    if(hasattr(self.obj406, '_setHierarchicalLink')):
      self.obj406._setHierarchicalLink(False)

    # QOCA
    self.obj406.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj406.Graphical_Appearance.setValue( ('ConditionBranch', self.obj406))

    # name
    self.obj406.name.setValue('ConditionBranch')

    # attributes
    self.obj406.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj406.attributes.setValue(lcobj2)

    # Abstract
    self.obj406.Abstract.setValue((None, 0))
    self.obj406.Abstract.config = 0

    # cardinality
    self.obj406.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj406.cardinality.setValue(lcobj2)

    # display
    self.obj406.display.setValue('Attributes:\n')
    self.obj406.display.setHeight(15)

    # Actions
    self.obj406.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj406.Actions.setValue(lcobj2)

    # Constraints
    self.obj406.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj406.Constraints.setValue(lcobj2)

    self.obj406.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(1740.0,2080.0,self.obj406)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj406.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj406)
    self.globalAndLocalPostcondition(self.obj406, rootNode)
    self.obj406.postAction( rootNode.CREATE )

    self.obj407=CD_Class3(self)
    self.obj407.isGraphObjectVisual = True

    if(hasattr(self.obj407, '_setHierarchicalLink')):
      self.obj407._setHierarchicalLink(False)

    # QOCA
    self.obj407.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj407.Graphical_Appearance.setValue( ('ListenBranch', self.obj407))

    # name
    self.obj407.name.setValue('ListenBranch')

    # attributes
    self.obj407.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj407.attributes.setValue(lcobj2)

    # Abstract
    self.obj407.Abstract.setValue((None, 0))
    self.obj407.Abstract.config = 0

    # cardinality
    self.obj407.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj407.cardinality.setValue(lcobj2)

    # display
    self.obj407.display.setValue('Attributes:\n')
    self.obj407.display.setHeight(15)

    # Actions
    self.obj407.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj407.Actions.setValue(lcobj2)

    # Constraints
    self.obj407.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj407.Constraints.setValue(lcobj2)

    self.obj407.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(940.0,2080.0,self.obj407)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj407.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj407)
    self.globalAndLocalPostcondition(self.obj407, rootNode)
    self.obj407.postAction( rootNode.CREATE )

    self.obj408=CD_Class3(self)
    self.obj408.isGraphObjectVisual = True

    if(hasattr(self.obj408, '_setHierarchicalLink')):
      self.obj408._setHierarchicalLink(False)

    # QOCA
    self.obj408.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj408.Graphical_Appearance.setValue( ('Site', self.obj408))

    # name
    self.obj408.name.setValue('Site')

    # attributes
    self.obj408.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj408.attributes.setValue(lcobj2)

    # Abstract
    self.obj408.Abstract.setValue((None, 0))
    self.obj408.Abstract.config = 0

    # cardinality
    self.obj408.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj408.cardinality.setValue(lcobj2)

    # display
    self.obj408.display.setValue('Attributes:\n')
    self.obj408.display.setHeight(15)

    # Actions
    self.obj408.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj408.Actions.setValue(lcobj2)

    # Constraints
    self.obj408.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj408.Constraints.setValue(lcobj2)

    self.obj408.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(1140.0,2080.0,self.obj408)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj408.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj408)
    self.globalAndLocalPostcondition(self.obj408, rootNode)
    self.obj408.postAction( rootNode.CREATE )

    self.obj409=CD_Class3(self)
    self.obj409.isGraphObjectVisual = True

    if(hasattr(self.obj409, '_setHierarchicalLink')):
      self.obj409._setHierarchicalLink(False)

    # QOCA
    self.obj409.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj409.Graphical_Appearance.setValue( ('Model_T', self.obj409))

    # name
    self.obj409.name.setValue('Model_T')

    # attributes
    self.obj409.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj409.attributes.setValue(lcobj2)

    # Abstract
    self.obj409.Abstract.setValue((None, 0))
    self.obj409.Abstract.config = 0

    # cardinality
    self.obj409.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj409.cardinality.setValue(lcobj2)

    # display
    self.obj409.display.setValue('Attributes:\n')
    self.obj409.display.setHeight(15)

    # Actions
    self.obj409.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj409.Actions.setValue(lcobj2)

    # Constraints
    self.obj409.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj409.Constraints.setValue(lcobj2)

    self.obj409.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(1340.0,2080.0,self.obj409)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj409.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj409)
    self.globalAndLocalPostcondition(self.obj409, rootNode)
    self.obj409.postAction( rootNode.CREATE )

    self.obj410=CD_Class3(self)
    self.obj410.isGraphObjectVisual = True

    if(hasattr(self.obj410, '_setHierarchicalLink')):
      self.obj410._setHierarchicalLink(False)

    # QOCA
    self.obj410.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj410.Graphical_Appearance.setValue( ('MatchCase', self.obj410))

    # name
    self.obj410.name.setValue('MatchCase')

    # attributes
    self.obj410.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj410.attributes.setValue(lcobj2)

    # Abstract
    self.obj410.Abstract.setValue((None, 0))
    self.obj410.Abstract.config = 0

    # cardinality
    self.obj410.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj410.cardinality.setValue(lcobj2)

    # display
    self.obj410.display.setValue('Attributes:\n')
    self.obj410.display.setHeight(15)

    # Actions
    self.obj410.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj410.Actions.setValue(lcobj2)

    # Constraints
    self.obj410.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj410.Constraints.setValue(lcobj2)

    self.obj410.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(1540.0,2080.0,self.obj410)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj410.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj410)
    self.globalAndLocalPostcondition(self.obj410, rootNode)
    self.obj410.postAction( rootNode.CREATE )

    self.obj411=CD_Class3(self)
    self.obj411.isGraphObjectVisual = True

    if(hasattr(self.obj411, '_setHierarchicalLink')):
      self.obj411._setHierarchicalLink(False)

    # QOCA
    self.obj411.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj411.Graphical_Appearance.setValue( ('Condition', self.obj411))

    # name
    self.obj411.name.setValue('Condition')

    # attributes
    self.obj411.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj411.attributes.setValue(lcobj2)

    # Abstract
    self.obj411.Abstract.setValue((None, 0))
    self.obj411.Abstract.config = 0

    # cardinality
    self.obj411.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj411.cardinality.setValue(lcobj2)

    # display
    self.obj411.display.setValue('Attributes:\n')
    self.obj411.display.setHeight(15)

    # Actions
    self.obj411.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj411.Actions.setValue(lcobj2)

    # Constraints
    self.obj411.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj411.Constraints.setValue(lcobj2)

    self.obj411.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(1620.0,2260.0,self.obj411)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj411.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj411)
    self.globalAndLocalPostcondition(self.obj411, rootNode)
    self.obj411.postAction( rootNode.CREATE )

    self.obj412=CD_Class3(self)
    self.obj412.isGraphObjectVisual = True

    if(hasattr(self.obj412, '_setHierarchicalLink')):
      self.obj412._setHierarchicalLink(False)

    # QOCA
    self.obj412.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj412.Graphical_Appearance.setValue( ('New', self.obj412))

    # name
    self.obj412.name.setValue('New')

    # attributes
    self.obj412.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj412.attributes.setValue(lcobj2)

    # Abstract
    self.obj412.Abstract.setValue((None, 0))
    self.obj412.Abstract.config = 0

    # cardinality
    self.obj412.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj412.cardinality.setValue(lcobj2)

    # display
    self.obj412.display.setValue('Attributes:\n')
    self.obj412.display.setHeight(15)

    # Actions
    self.obj412.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj412.Actions.setValue(lcobj2)

    # Constraints
    self.obj412.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj412.Constraints.setValue(lcobj2)

    self.obj412.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(2480.0,2260.0,self.obj412)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj412.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj412)
    self.globalAndLocalPostcondition(self.obj412, rootNode)
    self.obj412.postAction( rootNode.CREATE )

    self.obj413=CD_Class3(self)
    self.obj413.isGraphObjectVisual = True

    if(hasattr(self.obj413, '_setHierarchicalLink')):
      self.obj413._setHierarchicalLink(False)

    # QOCA
    self.obj413.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj413.Graphical_Appearance.setValue( ('Delay', self.obj413))

    # name
    self.obj413.name.setValue('Delay')

    # attributes
    self.obj413.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj413.attributes.setValue(lcobj2)

    # Abstract
    self.obj413.Abstract.setValue((None, 0))
    self.obj413.Abstract.config = 0

    # cardinality
    self.obj413.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj413.cardinality.setValue(lcobj2)

    # display
    self.obj413.display.setValue('Attributes:\n')
    self.obj413.display.setHeight(15)

    # Actions
    self.obj413.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj413.Actions.setValue(lcobj2)

    # Constraints
    self.obj413.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj413.Constraints.setValue(lcobj2)

    self.obj413.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(2680.0,2260.0,self.obj413)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj413.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj413)
    self.globalAndLocalPostcondition(self.obj413, rootNode)
    self.obj413.postAction( rootNode.CREATE )

    self.obj414=CD_Class3(self)
    self.obj414.isGraphObjectVisual = True

    if(hasattr(self.obj414, '_setHierarchicalLink')):
      self.obj414._setHierarchicalLink(False)

    # QOCA
    self.obj414.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj414.Graphical_Appearance.setValue( ('Par', self.obj414))

    # name
    self.obj414.name.setValue('Par')

    # attributes
    self.obj414.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj414.attributes.setValue(lcobj2)

    # Abstract
    self.obj414.Abstract.setValue((None, 0))
    self.obj414.Abstract.config = 0

    # cardinality
    self.obj414.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj414.cardinality.setValue(lcobj2)

    # display
    self.obj414.display.setValue('Attributes:\n')
    self.obj414.display.setHeight(15)

    # Actions
    self.obj414.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj414.Actions.setValue(lcobj2)

    # Constraints
    self.obj414.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj414.Constraints.setValue(lcobj2)

    self.obj414.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(1820.0,2440.0,self.obj414)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj414.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj414)
    self.globalAndLocalPostcondition(self.obj414, rootNode)
    self.obj414.postAction( rootNode.CREATE )

    self.obj415=CD_Class3(self)
    self.obj415.isGraphObjectVisual = True

    if(hasattr(self.obj415, '_setHierarchicalLink')):
      self.obj415._setHierarchicalLink(False)

    # QOCA
    self.obj415.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj415.Graphical_Appearance.setValue( ('ParIndexed', self.obj415))

    # name
    self.obj415.name.setValue('ParIndexed')

    # attributes
    self.obj415.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj415.attributes.setValue(lcobj2)

    # Abstract
    self.obj415.Abstract.setValue((None, 0))
    self.obj415.Abstract.config = 0

    # cardinality
    self.obj415.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj415.cardinality.setValue(lcobj2)

    # display
    self.obj415.display.setValue('Attributes:\n')
    self.obj415.display.setHeight(15)

    # Actions
    self.obj415.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj415.Actions.setValue(lcobj2)

    # Constraints
    self.obj415.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj415.Constraints.setValue(lcobj2)

    self.obj415.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(2040.0,2440.0,self.obj415)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj415.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj415)
    self.globalAndLocalPostcondition(self.obj415, rootNode)
    self.obj415.postAction( rootNode.CREATE )

    self.obj416=CD_Class3(self)
    self.obj416.isGraphObjectVisual = True

    if(hasattr(self.obj416, '_setHierarchicalLink')):
      self.obj416._setHierarchicalLink(False)

    # QOCA
    self.obj416.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj416.Graphical_Appearance.setValue( ('Inst', self.obj416))

    # name
    self.obj416.name.setValue('Inst')

    # attributes
    self.obj416.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj416.attributes.setValue(lcobj2)

    # Abstract
    self.obj416.Abstract.setValue((None, 0))
    self.obj416.Abstract.config = 0

    # cardinality
    self.obj416.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj416.cardinality.setValue(lcobj2)

    # display
    self.obj416.display.setValue('Attributes:\n')
    self.obj416.display.setHeight(15)

    # Actions
    self.obj416.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj416.Actions.setValue(lcobj2)

    # Constraints
    self.obj416.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj416.Constraints.setValue(lcobj2)

    self.obj416.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(2240.0,2440.0,self.obj416)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj416.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj416)
    self.globalAndLocalPostcondition(self.obj416, rootNode)
    self.obj416.postAction( rootNode.CREATE )

    self.obj417=CD_Class3(self)
    self.obj417.isGraphObjectVisual = True

    if(hasattr(self.obj417, '_setHierarchicalLink')):
      self.obj417._setHierarchicalLink(False)

    # QOCA
    self.obj417.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj417.Graphical_Appearance.setValue( ('LocalDef', self.obj417))

    # name
    self.obj417.name.setValue('LocalDef')

    # attributes
    self.obj417.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj417.attributes.setValue(lcobj2)

    # Abstract
    self.obj417.Abstract.setValue((None, 0))
    self.obj417.Abstract.config = 0

    # cardinality
    self.obj417.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj417.cardinality.setValue(lcobj2)

    # display
    self.obj417.display.setValue('Attributes:\n')
    self.obj417.display.setHeight(15)

    # Actions
    self.obj417.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj417.Actions.setValue(lcobj2)

    # Constraints
    self.obj417.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj417.Constraints.setValue(lcobj2)

    self.obj417.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(2440.0,2440.0,self.obj417)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj417.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj417)
    self.globalAndLocalPostcondition(self.obj417, rootNode)
    self.obj417.postAction( rootNode.CREATE )

    self.obj418=CD_Class3(self)
    self.obj418.isGraphObjectVisual = True

    if(hasattr(self.obj418, '_setHierarchicalLink')):
      self.obj418._setHierarchicalLink(False)

    # QOCA
    self.obj418.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj418.Graphical_Appearance.setValue( ('Seq', self.obj418))

    # name
    self.obj418.name.setValue('Seq')

    # attributes
    self.obj418.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj418.attributes.setValue(lcobj2)

    # Abstract
    self.obj418.Abstract.setValue((None, 0))
    self.obj418.Abstract.config = 0

    # cardinality
    self.obj418.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj418.cardinality.setValue(lcobj2)

    # display
    self.obj418.display.setValue('Attributes:\n')
    self.obj418.display.setHeight(15)

    # Actions
    self.obj418.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj418.Actions.setValue(lcobj2)

    # Constraints
    self.obj418.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj418.Constraints.setValue(lcobj2)

    self.obj418.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(1820.0,2620.0,self.obj418)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj418.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj418)
    self.globalAndLocalPostcondition(self.obj418, rootNode)
    self.obj418.postAction( rootNode.CREATE )

    self.obj419=CD_Class3(self)
    self.obj419.isGraphObjectVisual = True

    if(hasattr(self.obj419, '_setHierarchicalLink')):
      self.obj419._setHierarchicalLink(False)

    # QOCA
    self.obj419.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj419.Graphical_Appearance.setValue( ('ConditionSet', self.obj419))

    # name
    self.obj419.name.setValue('ConditionSet')

    # attributes
    self.obj419.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj419.attributes.setValue(lcobj2)

    # Abstract
    self.obj419.Abstract.setValue((None, 0))
    self.obj419.Abstract.config = 0

    # cardinality
    self.obj419.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj419.cardinality.setValue(lcobj2)

    # display
    self.obj419.display.setValue('Attributes:\n')
    self.obj419.display.setHeight(15)

    # Actions
    self.obj419.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj419.Actions.setValue(lcobj2)

    # Constraints
    self.obj419.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj419.Constraints.setValue(lcobj2)

    self.obj419.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(2640.0,2440.0,self.obj419)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj419.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj419)
    self.globalAndLocalPostcondition(self.obj419, rootNode)
    self.obj419.postAction( rootNode.CREATE )

    self.obj420=CD_Class3(self)
    self.obj420.isGraphObjectVisual = True

    if(hasattr(self.obj420, '_setHierarchicalLink')):
      self.obj420._setHierarchicalLink(False)

    # QOCA
    self.obj420.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj420.Graphical_Appearance.setValue( ('Match', self.obj420))

    # name
    self.obj420.name.setValue('Match')

    # attributes
    self.obj420.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj420.attributes.setValue(lcobj2)

    # Abstract
    self.obj420.Abstract.setValue((None, 0))
    self.obj420.Abstract.config = 0

    # cardinality
    self.obj420.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj420.cardinality.setValue(lcobj2)

    # display
    self.obj420.display.setValue('Attributes:\n')
    self.obj420.display.setHeight(15)

    # Actions
    self.obj420.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj420.Actions.setValue(lcobj2)

    # Constraints
    self.obj420.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj420.Constraints.setValue(lcobj2)

    self.obj420.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(2886.0,2260.0,self.obj420)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj420.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj420)
    self.globalAndLocalPostcondition(self.obj420, rootNode)
    self.obj420.postAction( rootNode.CREATE )

    self.obj421=CD_Class3(self)
    self.obj421.isGraphObjectVisual = True

    if(hasattr(self.obj421, '_setHierarchicalLink')):
      self.obj421._setHierarchicalLink(False)

    # QOCA
    self.obj421.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <---- Remove this to use QOCA\n\n""" Get the high level constraint helper and solver """\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.fixedWidth(self.graphObject_, self.graphObject_.sizeX)\noc.fixedHeight(self.graphObject_, self.graphObject_.sizeY)\n\n'))

    # Graphical_Appearance
    self.obj421.Graphical_Appearance.setValue( ('Print', self.obj421))

    # name
    self.obj421.name.setValue('Print')

    # attributes
    self.obj421.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('cardinality', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('1', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('classtype', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('name', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('s_', 20)
    cobj2.isDerivedAttribute = True
    lcobj2.append(cobj2)
    self.obj421.attributes.setValue(lcobj2)

    # Abstract
    self.obj421.Abstract.setValue((None, 0))
    self.obj421.Abstract.config = 0

    # cardinality
    self.obj421.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    self.obj421.cardinality.setValue(lcobj2)

    # display
    self.obj421.display.setValue('Attributes:\n')
    self.obj421.display.setHeight(15)

    # Actions
    self.obj421.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj421.Actions.setValue(lcobj2)

    # Constraints
    self.obj421.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj421.Constraints.setValue(lcobj2)

    self.obj421.graphClass_= graph_CD_Class3
    if self.genGraphics:
       new_obj = graph_CD_Class3(2840.0,2440.0,self.obj421)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Class3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.0, 1.0]
    else: new_obj = None
    self.obj421.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj421)
    self.globalAndLocalPostcondition(self.obj421, rootNode)
    self.obj421.postAction( rootNode.CREATE )

    self.obj422=CD_Association3(self)
    self.obj422.isGraphObjectVisual = True

    if(hasattr(self.obj422, '_setHierarchicalLink')):
      self.obj422._setHierarchicalLink(False)

    # QOCA
    self.obj422.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <--- Remove this if you want to use QOCA\n\n# Get the high level constraint helper and solver\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n# Constraint only makes sense if there exists 2 objects connected to this link\nif(not (self.in_connections_ and self.out_connections_)): return\n\n# Get the graphical objects (subclass of graphEntity/graphLink) \ngraphicalObjectLink = self.graphObject_\ngraphicalObjectSource = self.in_connections_[0].graphObject_\ngraphicalObjectTarget = self.out_connections_[0].graphObject_\nobjTuple = (graphicalObjectSource, graphicalObjectTarget, graphicalObjectLink)\n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.LeftExactDistance(objTuple, 20)\noc.resolve() # Resolve immediately after creating entity & constraint \n\n'))

    # Graphical_Appearance
    self.obj422.Graphical_Appearance.setValue( ('paired_with', self.obj422))
    self.obj422.Graphical_Appearance.linkInfo=linkEditor(self,self.obj422.Graphical_Appearance.semObject, "paired_with")
    self.obj422.Graphical_Appearance.linkInfo.FirstLink= stickylink()
    self.obj422.Graphical_Appearance.linkInfo.FirstLink.arrow=ATOM3Boolean()
    self.obj422.Graphical_Appearance.linkInfo.FirstLink.arrow.setValue((' ', 0))
    self.obj422.Graphical_Appearance.linkInfo.FirstLink.arrow.config = 0
    self.obj422.Graphical_Appearance.linkInfo.FirstLink.arrowShape1=ATOM3Integer(8)
    self.obj422.Graphical_Appearance.linkInfo.FirstLink.arrowShape2=ATOM3Integer(10)
    self.obj422.Graphical_Appearance.linkInfo.FirstLink.arrowShape3=ATOM3Integer(3)
    self.obj422.Graphical_Appearance.linkInfo.FirstLink.decoration=ATOM3Appearance()
    self.obj422.Graphical_Appearance.linkInfo.FirstLink.decoration.setValue( ('paired_with_1stLink', self.obj422.Graphical_Appearance.linkInfo.FirstLink))
    self.obj422.Graphical_Appearance.linkInfo.FirstSegment= widthXfillXdecoration()
    self.obj422.Graphical_Appearance.linkInfo.FirstSegment.width=ATOM3Integer(2)
    self.obj422.Graphical_Appearance.linkInfo.FirstSegment.fill=ATOM3String('black', 20)
    self.obj422.Graphical_Appearance.linkInfo.FirstSegment.stipple=ATOM3String('', 20)
    self.obj422.Graphical_Appearance.linkInfo.FirstSegment.arrow=ATOM3Boolean()
    self.obj422.Graphical_Appearance.linkInfo.FirstSegment.arrow.setValue((' ', 0))
    self.obj422.Graphical_Appearance.linkInfo.FirstSegment.arrow.config = 0
    self.obj422.Graphical_Appearance.linkInfo.FirstSegment.arrowShape1=ATOM3Integer(8)
    self.obj422.Graphical_Appearance.linkInfo.FirstSegment.arrowShape2=ATOM3Integer(10)
    self.obj422.Graphical_Appearance.linkInfo.FirstSegment.arrowShape3=ATOM3Integer(3)
    self.obj422.Graphical_Appearance.linkInfo.FirstSegment.decoration=ATOM3Appearance()
    self.obj422.Graphical_Appearance.linkInfo.FirstSegment.decoration.setValue( ('paired_with_1stSegment', self.obj422.Graphical_Appearance.linkInfo.FirstSegment))
    self.obj422.Graphical_Appearance.linkInfo.FirstSegment.decoration_Position=ATOM3Enum(['Up', 'Down', 'Middle', 'No decoration'],3,0)
    self.obj422.Graphical_Appearance.linkInfo.Center=ATOM3Appearance()
    self.obj422.Graphical_Appearance.linkInfo.Center.setValue( ('paired_with_Center', self.obj422.Graphical_Appearance.linkInfo))
    self.obj422.Graphical_Appearance.linkInfo.SecondSegment= widthXfillXdecoration()
    self.obj422.Graphical_Appearance.linkInfo.SecondSegment.width=ATOM3Integer(2)
    self.obj422.Graphical_Appearance.linkInfo.SecondSegment.fill=ATOM3String('black', 20)
    self.obj422.Graphical_Appearance.linkInfo.SecondSegment.stipple=ATOM3String('', 20)
    self.obj422.Graphical_Appearance.linkInfo.SecondSegment.arrow=ATOM3Boolean()
    self.obj422.Graphical_Appearance.linkInfo.SecondSegment.arrow.setValue((' ', 0))
    self.obj422.Graphical_Appearance.linkInfo.SecondSegment.arrow.config = 0
    self.obj422.Graphical_Appearance.linkInfo.SecondSegment.arrowShape1=ATOM3Integer(8)
    self.obj422.Graphical_Appearance.linkInfo.SecondSegment.arrowShape2=ATOM3Integer(10)
    self.obj422.Graphical_Appearance.linkInfo.SecondSegment.arrowShape3=ATOM3Integer(3)
    self.obj422.Graphical_Appearance.linkInfo.SecondSegment.decoration=ATOM3Appearance()
    self.obj422.Graphical_Appearance.linkInfo.SecondSegment.decoration.setValue( ('paired_with_2ndSegment', self.obj422.Graphical_Appearance.linkInfo.SecondSegment))
    self.obj422.Graphical_Appearance.linkInfo.SecondSegment.decoration_Position=ATOM3Enum(['Up', 'Down', 'Middle', 'No decoration'],3,0)
    self.obj422.Graphical_Appearance.linkInfo.SecondLink= stickylink()
    self.obj422.Graphical_Appearance.linkInfo.SecondLink.arrow=ATOM3Boolean()
    self.obj422.Graphical_Appearance.linkInfo.SecondLink.arrow.setValue((' ', 1))
    self.obj422.Graphical_Appearance.linkInfo.SecondLink.arrow.config = 0
    self.obj422.Graphical_Appearance.linkInfo.SecondLink.arrowShape1=ATOM3Integer(8)
    self.obj422.Graphical_Appearance.linkInfo.SecondLink.arrowShape2=ATOM3Integer(10)
    self.obj422.Graphical_Appearance.linkInfo.SecondLink.arrowShape3=ATOM3Integer(3)
    self.obj422.Graphical_Appearance.linkInfo.SecondLink.decoration=ATOM3Appearance()
    self.obj422.Graphical_Appearance.linkInfo.SecondLink.decoration.setValue( ('paired_with_2ndLink', self.obj422.Graphical_Appearance.linkInfo.SecondLink))
    self.obj422.Graphical_Appearance.linkInfo.FirstLink.decoration.semObject=self.obj422.Graphical_Appearance.semObject
    self.obj422.Graphical_Appearance.linkInfo.FirstSegment.decoration.semObject=self.obj422.Graphical_Appearance.semObject
    self.obj422.Graphical_Appearance.linkInfo.Center.semObject=self.obj422.Graphical_Appearance.semObject
    self.obj422.Graphical_Appearance.linkInfo.SecondSegment.decoration.semObject=self.obj422.Graphical_Appearance.semObject
    self.obj422.Graphical_Appearance.linkInfo.SecondLink.decoration.semObject=self.obj422.Graphical_Appearance.semObject

    # name
    self.obj422.name.setValue('paired_with')

    # displaySelect
    self.obj422.displaySelect.setValue( (['attributes', 'constraints', 'actions', 'cardinality'], [0, 0, 0, 0]) )
    self.obj422.displaySelect.config = 0

    # attributes
    self.obj422.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj422.attributes.setValue(lcobj2)

    # cardinality
    self.obj422.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    cobj2=ATOM3Connection()
    cobj2.setValue(('ApplyModel', (('Source', 'Destination'), 0), '1', '1'))
    lcobj2.append(cobj2)
    cobj2=ATOM3Connection()
    cobj2.setValue(('MatchModel', (('Source', 'Destination'), 1), '1', '1'))
    lcobj2.append(cobj2)
    self.obj422.cardinality.setValue(lcobj2)

    # display
    self.obj422.display.setValue('Multiplicities:\n  - To ApplyModel: 1 to 1\n  - From MatchModel: 1 to 1\n')
    self.obj422.display.setHeight(15)

    # Actions
    self.obj422.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj422.Actions.setValue(lcobj2)

    # Constraints
    self.obj422.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj422.Constraints.setValue(lcobj2)

    self.obj422.graphClass_= graph_CD_Association3
    if self.genGraphics:
       new_obj = graph_CD_Association3(121.0,395.0,self.obj422)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Association3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.09
       new_obj.layConstraints['scale'] = [1.526, 1.0]
    else: new_obj = None
    self.obj422.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj422)
    self.globalAndLocalPostcondition(self.obj422, rootNode)
    self.obj422.postAction( rootNode.CREATE )

    self.obj423=CD_Association3(self)
    self.obj423.isGraphObjectVisual = True

    if(hasattr(self.obj423, '_setHierarchicalLink')):
      self.obj423._setHierarchicalLink(False)

    # QOCA
    self.obj423.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <--- Remove this if you want to use QOCA\n\n# Get the high level constraint helper and solver\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n# Constraint only makes sense if there exists 2 objects connected to this link\nif(not (self.in_connections_ and self.out_connections_)): return\n\n# Get the graphical objects (subclass of graphEntity/graphLink) \ngraphicalObjectLink = self.graphObject_\ngraphicalObjectSource = self.in_connections_[0].graphObject_\ngraphicalObjectTarget = self.out_connections_[0].graphObject_\nobjTuple = (graphicalObjectSource, graphicalObjectTarget, graphicalObjectLink)\n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.LeftExactDistance(objTuple, 20)\noc.resolve() # Resolve immediately after creating entity & constraint \n\n'))

    # Graphical_Appearance
    self.obj423.Graphical_Appearance.setValue( ('match_contains', self.obj423))
    self.obj423.Graphical_Appearance.linkInfo=linkEditor(self,self.obj423.Graphical_Appearance.semObject, "match_contains")
    self.obj423.Graphical_Appearance.linkInfo.FirstLink= stickylink()
    self.obj423.Graphical_Appearance.linkInfo.FirstLink.arrow=ATOM3Boolean()
    self.obj423.Graphical_Appearance.linkInfo.FirstLink.arrow.setValue((' ', 0))
    self.obj423.Graphical_Appearance.linkInfo.FirstLink.arrow.config = 0
    self.obj423.Graphical_Appearance.linkInfo.FirstLink.arrowShape1=ATOM3Integer(8)
    self.obj423.Graphical_Appearance.linkInfo.FirstLink.arrowShape2=ATOM3Integer(10)
    self.obj423.Graphical_Appearance.linkInfo.FirstLink.arrowShape3=ATOM3Integer(3)
    self.obj423.Graphical_Appearance.linkInfo.FirstLink.decoration=ATOM3Appearance()
    self.obj423.Graphical_Appearance.linkInfo.FirstLink.decoration.setValue( ('match_contains_1stLink', self.obj423.Graphical_Appearance.linkInfo.FirstLink))
    self.obj423.Graphical_Appearance.linkInfo.FirstSegment= widthXfillXdecoration()
    self.obj423.Graphical_Appearance.linkInfo.FirstSegment.width=ATOM3Integer(2)
    self.obj423.Graphical_Appearance.linkInfo.FirstSegment.fill=ATOM3String('black', 20)
    self.obj423.Graphical_Appearance.linkInfo.FirstSegment.stipple=ATOM3String('', 20)
    self.obj423.Graphical_Appearance.linkInfo.FirstSegment.arrow=ATOM3Boolean()
    self.obj423.Graphical_Appearance.linkInfo.FirstSegment.arrow.setValue((' ', 0))
    self.obj423.Graphical_Appearance.linkInfo.FirstSegment.arrow.config = 0
    self.obj423.Graphical_Appearance.linkInfo.FirstSegment.arrowShape1=ATOM3Integer(8)
    self.obj423.Graphical_Appearance.linkInfo.FirstSegment.arrowShape2=ATOM3Integer(10)
    self.obj423.Graphical_Appearance.linkInfo.FirstSegment.arrowShape3=ATOM3Integer(3)
    self.obj423.Graphical_Appearance.linkInfo.FirstSegment.decoration=ATOM3Appearance()
    self.obj423.Graphical_Appearance.linkInfo.FirstSegment.decoration.setValue( ('match_contains_1stSegment', self.obj423.Graphical_Appearance.linkInfo.FirstSegment))
    self.obj423.Graphical_Appearance.linkInfo.FirstSegment.decoration_Position=ATOM3Enum(['Up', 'Down', 'Middle', 'No decoration'],3,0)
    self.obj423.Graphical_Appearance.linkInfo.Center=ATOM3Appearance()
    self.obj423.Graphical_Appearance.linkInfo.Center.setValue( ('match_contains_Center', self.obj423.Graphical_Appearance.linkInfo))
    self.obj423.Graphical_Appearance.linkInfo.SecondSegment= widthXfillXdecoration()
    self.obj423.Graphical_Appearance.linkInfo.SecondSegment.width=ATOM3Integer(2)
    self.obj423.Graphical_Appearance.linkInfo.SecondSegment.fill=ATOM3String('black', 20)
    self.obj423.Graphical_Appearance.linkInfo.SecondSegment.stipple=ATOM3String('', 20)
    self.obj423.Graphical_Appearance.linkInfo.SecondSegment.arrow=ATOM3Boolean()
    self.obj423.Graphical_Appearance.linkInfo.SecondSegment.arrow.setValue((' ', 0))
    self.obj423.Graphical_Appearance.linkInfo.SecondSegment.arrow.config = 0
    self.obj423.Graphical_Appearance.linkInfo.SecondSegment.arrowShape1=ATOM3Integer(8)
    self.obj423.Graphical_Appearance.linkInfo.SecondSegment.arrowShape2=ATOM3Integer(10)
    self.obj423.Graphical_Appearance.linkInfo.SecondSegment.arrowShape3=ATOM3Integer(3)
    self.obj423.Graphical_Appearance.linkInfo.SecondSegment.decoration=ATOM3Appearance()
    self.obj423.Graphical_Appearance.linkInfo.SecondSegment.decoration.setValue( ('match_contains_2ndSegment', self.obj423.Graphical_Appearance.linkInfo.SecondSegment))
    self.obj423.Graphical_Appearance.linkInfo.SecondSegment.decoration_Position=ATOM3Enum(['Up', 'Down', 'Middle', 'No decoration'],3,0)
    self.obj423.Graphical_Appearance.linkInfo.SecondLink= stickylink()
    self.obj423.Graphical_Appearance.linkInfo.SecondLink.arrow=ATOM3Boolean()
    self.obj423.Graphical_Appearance.linkInfo.SecondLink.arrow.setValue((' ', 1))
    self.obj423.Graphical_Appearance.linkInfo.SecondLink.arrow.config = 0
    self.obj423.Graphical_Appearance.linkInfo.SecondLink.arrowShape1=ATOM3Integer(8)
    self.obj423.Graphical_Appearance.linkInfo.SecondLink.arrowShape2=ATOM3Integer(10)
    self.obj423.Graphical_Appearance.linkInfo.SecondLink.arrowShape3=ATOM3Integer(3)
    self.obj423.Graphical_Appearance.linkInfo.SecondLink.decoration=ATOM3Appearance()
    self.obj423.Graphical_Appearance.linkInfo.SecondLink.decoration.setValue( ('match_contains_2ndLink', self.obj423.Graphical_Appearance.linkInfo.SecondLink))
    self.obj423.Graphical_Appearance.linkInfo.FirstLink.decoration.semObject=self.obj423.Graphical_Appearance.semObject
    self.obj423.Graphical_Appearance.linkInfo.FirstSegment.decoration.semObject=self.obj423.Graphical_Appearance.semObject
    self.obj423.Graphical_Appearance.linkInfo.Center.semObject=self.obj423.Graphical_Appearance.semObject
    self.obj423.Graphical_Appearance.linkInfo.SecondSegment.decoration.semObject=self.obj423.Graphical_Appearance.semObject
    self.obj423.Graphical_Appearance.linkInfo.SecondLink.decoration.semObject=self.obj423.Graphical_Appearance.semObject

    # name
    self.obj423.name.setValue('match_contains')

    # displaySelect
    self.obj423.displaySelect.setValue( (['attributes', 'constraints', 'actions', 'cardinality'], [0, 0, 0, 0]) )
    self.obj423.displaySelect.config = 0

    # attributes
    self.obj423.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj423.attributes.setValue(lcobj2)

    # cardinality
    self.obj423.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    cobj2=ATOM3Connection()
    cobj2.setValue(('MetaModelElement_S', (('Source', 'Destination'), 0), '0', 'N'))
    lcobj2.append(cobj2)
    cobj2=ATOM3Connection()
    cobj2.setValue(('MatchModel', (('Source', 'Destination'), 1), '0', 'N'))
    lcobj2.append(cobj2)
    self.obj423.cardinality.setValue(lcobj2)

    # display
    self.obj423.display.setValue('Multiplicities:\n  - To MetaModelElement_S: 0 to N\n  - From MatchModel: 0 to N\n')
    self.obj423.display.setHeight(15)

    # Actions
    self.obj423.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj423.Actions.setValue(lcobj2)

    # Constraints
    self.obj423.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj423.Constraints.setValue(lcobj2)

    self.obj423.graphClass_= graph_CD_Association3
    if self.genGraphics:
       new_obj = graph_CD_Association3(745.5625,123.0,self.obj423)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Association3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.7360000000000002, 1.0]
    else: new_obj = None
    self.obj423.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj423)
    self.globalAndLocalPostcondition(self.obj423, rootNode)
    self.obj423.postAction( rootNode.CREATE )

    self.obj424=CD_Association3(self)
    self.obj424.isGraphObjectVisual = True

    if(hasattr(self.obj424, '_setHierarchicalLink')):
      self.obj424._setHierarchicalLink(False)

    # QOCA
    self.obj424.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <--- Remove this if you want to use QOCA\n\n# Get the high level constraint helper and solver\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n# Constraint only makes sense if there exists 2 objects connected to this link\nif(not (self.in_connections_ and self.out_connections_)): return\n\n# Get the graphical objects (subclass of graphEntity/graphLink) \ngraphicalObjectLink = self.graphObject_\ngraphicalObjectSource = self.in_connections_[0].graphObject_\ngraphicalObjectTarget = self.out_connections_[0].graphObject_\nobjTuple = (graphicalObjectSource, graphicalObjectTarget, graphicalObjectLink)\n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.LeftExactDistance(objTuple, 20)\noc.resolve() # Resolve immediately after creating entity & constraint \n\n'))

    # Graphical_Appearance
    self.obj424.Graphical_Appearance.setValue( ('apply_contains', self.obj424))
    self.obj424.Graphical_Appearance.linkInfo=linkEditor(self,self.obj424.Graphical_Appearance.semObject, "apply_contains")
    self.obj424.Graphical_Appearance.linkInfo.FirstLink= stickylink()
    self.obj424.Graphical_Appearance.linkInfo.FirstLink.arrow=ATOM3Boolean()
    self.obj424.Graphical_Appearance.linkInfo.FirstLink.arrow.setValue((' ', 0))
    self.obj424.Graphical_Appearance.linkInfo.FirstLink.arrow.config = 0
    self.obj424.Graphical_Appearance.linkInfo.FirstLink.arrowShape1=ATOM3Integer(8)
    self.obj424.Graphical_Appearance.linkInfo.FirstLink.arrowShape2=ATOM3Integer(10)
    self.obj424.Graphical_Appearance.linkInfo.FirstLink.arrowShape3=ATOM3Integer(3)
    self.obj424.Graphical_Appearance.linkInfo.FirstLink.decoration=ATOM3Appearance()
    self.obj424.Graphical_Appearance.linkInfo.FirstLink.decoration.setValue( ('apply_contains_1stLink', self.obj424.Graphical_Appearance.linkInfo.FirstLink))
    self.obj424.Graphical_Appearance.linkInfo.FirstSegment= widthXfillXdecoration()
    self.obj424.Graphical_Appearance.linkInfo.FirstSegment.width=ATOM3Integer(2)
    self.obj424.Graphical_Appearance.linkInfo.FirstSegment.fill=ATOM3String('black', 20)
    self.obj424.Graphical_Appearance.linkInfo.FirstSegment.stipple=ATOM3String('', 20)
    self.obj424.Graphical_Appearance.linkInfo.FirstSegment.arrow=ATOM3Boolean()
    self.obj424.Graphical_Appearance.linkInfo.FirstSegment.arrow.setValue((' ', 0))
    self.obj424.Graphical_Appearance.linkInfo.FirstSegment.arrow.config = 0
    self.obj424.Graphical_Appearance.linkInfo.FirstSegment.arrowShape1=ATOM3Integer(8)
    self.obj424.Graphical_Appearance.linkInfo.FirstSegment.arrowShape2=ATOM3Integer(10)
    self.obj424.Graphical_Appearance.linkInfo.FirstSegment.arrowShape3=ATOM3Integer(3)
    self.obj424.Graphical_Appearance.linkInfo.FirstSegment.decoration=ATOM3Appearance()
    self.obj424.Graphical_Appearance.linkInfo.FirstSegment.decoration.setValue( ('apply_contains_1stSegment', self.obj424.Graphical_Appearance.linkInfo.FirstSegment))
    self.obj424.Graphical_Appearance.linkInfo.FirstSegment.decoration_Position=ATOM3Enum(['Up', 'Down', 'Middle', 'No decoration'],3,0)
    self.obj424.Graphical_Appearance.linkInfo.Center=ATOM3Appearance()
    self.obj424.Graphical_Appearance.linkInfo.Center.setValue( ('apply_contains_Center', self.obj424.Graphical_Appearance.linkInfo))
    self.obj424.Graphical_Appearance.linkInfo.SecondSegment= widthXfillXdecoration()
    self.obj424.Graphical_Appearance.linkInfo.SecondSegment.width=ATOM3Integer(2)
    self.obj424.Graphical_Appearance.linkInfo.SecondSegment.fill=ATOM3String('black', 20)
    self.obj424.Graphical_Appearance.linkInfo.SecondSegment.stipple=ATOM3String('', 20)
    self.obj424.Graphical_Appearance.linkInfo.SecondSegment.arrow=ATOM3Boolean()
    self.obj424.Graphical_Appearance.linkInfo.SecondSegment.arrow.setValue((' ', 0))
    self.obj424.Graphical_Appearance.linkInfo.SecondSegment.arrow.config = 0
    self.obj424.Graphical_Appearance.linkInfo.SecondSegment.arrowShape1=ATOM3Integer(8)
    self.obj424.Graphical_Appearance.linkInfo.SecondSegment.arrowShape2=ATOM3Integer(10)
    self.obj424.Graphical_Appearance.linkInfo.SecondSegment.arrowShape3=ATOM3Integer(3)
    self.obj424.Graphical_Appearance.linkInfo.SecondSegment.decoration=ATOM3Appearance()
    self.obj424.Graphical_Appearance.linkInfo.SecondSegment.decoration.setValue( ('apply_contains_2ndSegment', self.obj424.Graphical_Appearance.linkInfo.SecondSegment))
    self.obj424.Graphical_Appearance.linkInfo.SecondSegment.decoration_Position=ATOM3Enum(['Up', 'Down', 'Middle', 'No decoration'],3,0)
    self.obj424.Graphical_Appearance.linkInfo.SecondLink= stickylink()
    self.obj424.Graphical_Appearance.linkInfo.SecondLink.arrow=ATOM3Boolean()
    self.obj424.Graphical_Appearance.linkInfo.SecondLink.arrow.setValue((' ', 1))
    self.obj424.Graphical_Appearance.linkInfo.SecondLink.arrow.config = 0
    self.obj424.Graphical_Appearance.linkInfo.SecondLink.arrowShape1=ATOM3Integer(8)
    self.obj424.Graphical_Appearance.linkInfo.SecondLink.arrowShape2=ATOM3Integer(10)
    self.obj424.Graphical_Appearance.linkInfo.SecondLink.arrowShape3=ATOM3Integer(3)
    self.obj424.Graphical_Appearance.linkInfo.SecondLink.decoration=ATOM3Appearance()
    self.obj424.Graphical_Appearance.linkInfo.SecondLink.decoration.setValue( ('apply_contains_2ndLink', self.obj424.Graphical_Appearance.linkInfo.SecondLink))
    self.obj424.Graphical_Appearance.linkInfo.FirstLink.decoration.semObject=self.obj424.Graphical_Appearance.semObject
    self.obj424.Graphical_Appearance.linkInfo.FirstSegment.decoration.semObject=self.obj424.Graphical_Appearance.semObject
    self.obj424.Graphical_Appearance.linkInfo.Center.semObject=self.obj424.Graphical_Appearance.semObject
    self.obj424.Graphical_Appearance.linkInfo.SecondSegment.decoration.semObject=self.obj424.Graphical_Appearance.semObject
    self.obj424.Graphical_Appearance.linkInfo.SecondLink.decoration.semObject=self.obj424.Graphical_Appearance.semObject

    # name
    self.obj424.name.setValue('apply_contains')

    # displaySelect
    self.obj424.displaySelect.setValue( (['attributes', 'constraints', 'actions', 'cardinality'], [0, 0, 0, 0]) )
    self.obj424.displaySelect.config = 0

    # attributes
    self.obj424.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj424.attributes.setValue(lcobj2)

    # cardinality
    self.obj424.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    cobj2=ATOM3Connection()
    cobj2.setValue(('MetaModelElement_T', (('Source', 'Destination'), 0), '0', 'N'))
    lcobj2.append(cobj2)
    cobj2=ATOM3Connection()
    cobj2.setValue(('ApplyModel', (('Source', 'Destination'), 1), '0', 'N'))
    lcobj2.append(cobj2)
    self.obj424.cardinality.setValue(lcobj2)

    # display
    self.obj424.display.setValue('Multiplicities:\n  - To MetaModelElement_T: 0 to N\n  - From ApplyModel: 0 to N\n')
    self.obj424.display.setHeight(15)

    # Actions
    self.obj424.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj424.Actions.setValue(lcobj2)

    # Constraints
    self.obj424.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj424.Constraints.setValue(lcobj2)

    self.obj424.graphClass_= graph_CD_Association3
    if self.genGraphics:
       new_obj = graph_CD_Association3(572.123046875,1947.0,self.obj424)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Association3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.7290000000000001, 1.0]
    else: new_obj = None
    self.obj424.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj424)
    self.globalAndLocalPostcondition(self.obj424, rootNode)
    self.obj424.postAction( rootNode.CREATE )

    self.obj425=CD_Association3(self)
    self.obj425.isGraphObjectVisual = True

    if(hasattr(self.obj425, '_setHierarchicalLink')):
      self.obj425._setHierarchicalLink(False)

    # QOCA
    self.obj425.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <--- Remove this if you want to use QOCA\n\n# Get the high level constraint helper and solver\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n# Constraint only makes sense if there exists 2 objects connected to this link\nif(not (self.in_connections_ and self.out_connections_)): return\n\n# Get the graphical objects (subclass of graphEntity/graphLink) \ngraphicalObjectLink = self.graphObject_\ngraphicalObjectSource = self.in_connections_[0].graphObject_\ngraphicalObjectTarget = self.out_connections_[0].graphObject_\nobjTuple = (graphicalObjectSource, graphicalObjectTarget, graphicalObjectLink)\n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.LeftExactDistance(objTuple, 20)\noc.resolve() # Resolve immediately after creating entity & constraint \n\n'))

    # Graphical_Appearance
    self.obj425.Graphical_Appearance.setValue( ('directLink_T', self.obj425))
    self.obj425.Graphical_Appearance.linkInfo=linkEditor(self,self.obj425.Graphical_Appearance.semObject, "directLink_T")
    self.obj425.Graphical_Appearance.linkInfo.FirstLink= stickylink()
    self.obj425.Graphical_Appearance.linkInfo.FirstLink.arrow=ATOM3Boolean()
    self.obj425.Graphical_Appearance.linkInfo.FirstLink.arrow.setValue((' ', 0))
    self.obj425.Graphical_Appearance.linkInfo.FirstLink.arrow.config = 0
    self.obj425.Graphical_Appearance.linkInfo.FirstLink.arrowShape1=ATOM3Integer(8)
    self.obj425.Graphical_Appearance.linkInfo.FirstLink.arrowShape2=ATOM3Integer(10)
    self.obj425.Graphical_Appearance.linkInfo.FirstLink.arrowShape3=ATOM3Integer(3)
    self.obj425.Graphical_Appearance.linkInfo.FirstLink.decoration=ATOM3Appearance()
    self.obj425.Graphical_Appearance.linkInfo.FirstLink.decoration.setValue( ('directLink_T_1stLink', self.obj425.Graphical_Appearance.linkInfo.FirstLink))
    self.obj425.Graphical_Appearance.linkInfo.FirstSegment= widthXfillXdecoration()
    self.obj425.Graphical_Appearance.linkInfo.FirstSegment.width=ATOM3Integer(2)
    self.obj425.Graphical_Appearance.linkInfo.FirstSegment.fill=ATOM3String('black', 20)
    self.obj425.Graphical_Appearance.linkInfo.FirstSegment.stipple=ATOM3String('', 20)
    self.obj425.Graphical_Appearance.linkInfo.FirstSegment.arrow=ATOM3Boolean()
    self.obj425.Graphical_Appearance.linkInfo.FirstSegment.arrow.setValue((' ', 0))
    self.obj425.Graphical_Appearance.linkInfo.FirstSegment.arrow.config = 0
    self.obj425.Graphical_Appearance.linkInfo.FirstSegment.arrowShape1=ATOM3Integer(8)
    self.obj425.Graphical_Appearance.linkInfo.FirstSegment.arrowShape2=ATOM3Integer(10)
    self.obj425.Graphical_Appearance.linkInfo.FirstSegment.arrowShape3=ATOM3Integer(3)
    self.obj425.Graphical_Appearance.linkInfo.FirstSegment.decoration=ATOM3Appearance()
    self.obj425.Graphical_Appearance.linkInfo.FirstSegment.decoration.setValue( ('directLink_T_1stSegment', self.obj425.Graphical_Appearance.linkInfo.FirstSegment))
    self.obj425.Graphical_Appearance.linkInfo.FirstSegment.decoration_Position=ATOM3Enum(['Up', 'Down', 'Middle', 'No decoration'],3,0)
    self.obj425.Graphical_Appearance.linkInfo.Center=ATOM3Appearance()
    self.obj425.Graphical_Appearance.linkInfo.Center.setValue( ('directLink_T_Center', self.obj425.Graphical_Appearance.linkInfo))
    self.obj425.Graphical_Appearance.linkInfo.SecondSegment= widthXfillXdecoration()
    self.obj425.Graphical_Appearance.linkInfo.SecondSegment.width=ATOM3Integer(2)
    self.obj425.Graphical_Appearance.linkInfo.SecondSegment.fill=ATOM3String('black', 20)
    self.obj425.Graphical_Appearance.linkInfo.SecondSegment.stipple=ATOM3String('', 20)
    self.obj425.Graphical_Appearance.linkInfo.SecondSegment.arrow=ATOM3Boolean()
    self.obj425.Graphical_Appearance.linkInfo.SecondSegment.arrow.setValue((' ', 0))
    self.obj425.Graphical_Appearance.linkInfo.SecondSegment.arrow.config = 0
    self.obj425.Graphical_Appearance.linkInfo.SecondSegment.arrowShape1=ATOM3Integer(8)
    self.obj425.Graphical_Appearance.linkInfo.SecondSegment.arrowShape2=ATOM3Integer(10)
    self.obj425.Graphical_Appearance.linkInfo.SecondSegment.arrowShape3=ATOM3Integer(3)
    self.obj425.Graphical_Appearance.linkInfo.SecondSegment.decoration=ATOM3Appearance()
    self.obj425.Graphical_Appearance.linkInfo.SecondSegment.decoration.setValue( ('directLink_T_2ndSegment', self.obj425.Graphical_Appearance.linkInfo.SecondSegment))
    self.obj425.Graphical_Appearance.linkInfo.SecondSegment.decoration_Position=ATOM3Enum(['Up', 'Down', 'Middle', 'No decoration'],3,0)
    self.obj425.Graphical_Appearance.linkInfo.SecondLink= stickylink()
    self.obj425.Graphical_Appearance.linkInfo.SecondLink.arrow=ATOM3Boolean()
    self.obj425.Graphical_Appearance.linkInfo.SecondLink.arrow.setValue((' ', 1))
    self.obj425.Graphical_Appearance.linkInfo.SecondLink.arrow.config = 0
    self.obj425.Graphical_Appearance.linkInfo.SecondLink.arrowShape1=ATOM3Integer(8)
    self.obj425.Graphical_Appearance.linkInfo.SecondLink.arrowShape2=ATOM3Integer(10)
    self.obj425.Graphical_Appearance.linkInfo.SecondLink.arrowShape3=ATOM3Integer(3)
    self.obj425.Graphical_Appearance.linkInfo.SecondLink.decoration=ATOM3Appearance()
    self.obj425.Graphical_Appearance.linkInfo.SecondLink.decoration.setValue( ('directLink_T_2ndLink', self.obj425.Graphical_Appearance.linkInfo.SecondLink))
    self.obj425.Graphical_Appearance.linkInfo.FirstLink.decoration.semObject=self.obj425.Graphical_Appearance.semObject
    self.obj425.Graphical_Appearance.linkInfo.FirstSegment.decoration.semObject=self.obj425.Graphical_Appearance.semObject
    self.obj425.Graphical_Appearance.linkInfo.Center.semObject=self.obj425.Graphical_Appearance.semObject
    self.obj425.Graphical_Appearance.linkInfo.SecondSegment.decoration.semObject=self.obj425.Graphical_Appearance.semObject
    self.obj425.Graphical_Appearance.linkInfo.SecondLink.decoration.semObject=self.obj425.Graphical_Appearance.semObject

    # name
    self.obj425.name.setValue('directLink_T')

    # displaySelect
    self.obj425.displaySelect.setValue( (['attributes', 'constraints', 'actions', 'cardinality'], [0, 0, 0, 0]) )
    self.obj425.displaySelect.config = 0

    # attributes
    self.obj425.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('associationType', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = False
    lcobj2.append(cobj2)
    self.obj425.attributes.setValue(lcobj2)

    # cardinality
    self.obj425.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    cobj2=ATOM3Connection()
    cobj2.setValue(('MetaModelElement_T', (('Source', 'Destination'), 0), '0', 'N'))
    lcobj2.append(cobj2)
    cobj2=ATOM3Connection()
    cobj2.setValue(('MetaModelElement_T', (('Source', 'Destination'), 1), '0', 'N'))
    lcobj2.append(cobj2)
    self.obj425.cardinality.setValue(lcobj2)

    # display
    self.obj425.display.setValue('Attributes:\n  - associationType :: String\nMultiplicities:\n  - To MetaModelElement_T: 0 to N\n  - From MetaModelElement_T: 0 to N\n')
    self.obj425.display.setHeight(15)

    # Actions
    self.obj425.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj425.Actions.setValue(lcobj2)

    # Constraints
    self.obj425.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj425.Constraints.setValue(lcobj2)

    self.obj425.graphClass_= graph_CD_Association3
    if self.genGraphics:
       new_obj = graph_CD_Association3(3150.58007812,1878.0,self.obj425)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Association3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.855, 1.185483870967742]
    else: new_obj = None
    self.obj425.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj425)
    self.globalAndLocalPostcondition(self.obj425, rootNode)
    self.obj425.postAction( rootNode.CREATE )

    self.obj426=CD_Association3(self)
    self.obj426.isGraphObjectVisual = True

    if(hasattr(self.obj426, '_setHierarchicalLink')):
      self.obj426._setHierarchicalLink(False)

    # QOCA
    self.obj426.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <--- Remove this if you want to use QOCA\n\n# Get the high level constraint helper and solver\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n# Constraint only makes sense if there exists 2 objects connected to this link\nif(not (self.in_connections_ and self.out_connections_)): return\n\n# Get the graphical objects (subclass of graphEntity/graphLink) \ngraphicalObjectLink = self.graphObject_\ngraphicalObjectSource = self.in_connections_[0].graphObject_\ngraphicalObjectTarget = self.out_connections_[0].graphObject_\nobjTuple = (graphicalObjectSource, graphicalObjectTarget, graphicalObjectLink)\n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.LeftExactDistance(objTuple, 20)\noc.resolve() # Resolve immediately after creating entity & constraint \n\n'))

    # Graphical_Appearance
    self.obj426.Graphical_Appearance.setValue( ('directLink_S', self.obj426))
    self.obj426.Graphical_Appearance.linkInfo=linkEditor(self,self.obj426.Graphical_Appearance.semObject, "directLink_S")
    self.obj426.Graphical_Appearance.linkInfo.FirstLink= stickylink()
    self.obj426.Graphical_Appearance.linkInfo.FirstLink.arrow=ATOM3Boolean()
    self.obj426.Graphical_Appearance.linkInfo.FirstLink.arrow.setValue((' ', 0))
    self.obj426.Graphical_Appearance.linkInfo.FirstLink.arrow.config = 0
    self.obj426.Graphical_Appearance.linkInfo.FirstLink.arrowShape1=ATOM3Integer(8)
    self.obj426.Graphical_Appearance.linkInfo.FirstLink.arrowShape2=ATOM3Integer(10)
    self.obj426.Graphical_Appearance.linkInfo.FirstLink.arrowShape3=ATOM3Integer(3)
    self.obj426.Graphical_Appearance.linkInfo.FirstLink.decoration=ATOM3Appearance()
    self.obj426.Graphical_Appearance.linkInfo.FirstLink.decoration.setValue( ('directLink_S_1stLink', self.obj426.Graphical_Appearance.linkInfo.FirstLink))
    self.obj426.Graphical_Appearance.linkInfo.FirstSegment= widthXfillXdecoration()
    self.obj426.Graphical_Appearance.linkInfo.FirstSegment.width=ATOM3Integer(2)
    self.obj426.Graphical_Appearance.linkInfo.FirstSegment.fill=ATOM3String('black', 20)
    self.obj426.Graphical_Appearance.linkInfo.FirstSegment.stipple=ATOM3String('', 20)
    self.obj426.Graphical_Appearance.linkInfo.FirstSegment.arrow=ATOM3Boolean()
    self.obj426.Graphical_Appearance.linkInfo.FirstSegment.arrow.setValue((' ', 0))
    self.obj426.Graphical_Appearance.linkInfo.FirstSegment.arrow.config = 0
    self.obj426.Graphical_Appearance.linkInfo.FirstSegment.arrowShape1=ATOM3Integer(8)
    self.obj426.Graphical_Appearance.linkInfo.FirstSegment.arrowShape2=ATOM3Integer(10)
    self.obj426.Graphical_Appearance.linkInfo.FirstSegment.arrowShape3=ATOM3Integer(3)
    self.obj426.Graphical_Appearance.linkInfo.FirstSegment.decoration=ATOM3Appearance()
    self.obj426.Graphical_Appearance.linkInfo.FirstSegment.decoration.setValue( ('directLink_S_1stSegment', self.obj426.Graphical_Appearance.linkInfo.FirstSegment))
    self.obj426.Graphical_Appearance.linkInfo.FirstSegment.decoration_Position=ATOM3Enum(['Up', 'Down', 'Middle', 'No decoration'],3,0)
    self.obj426.Graphical_Appearance.linkInfo.Center=ATOM3Appearance()
    self.obj426.Graphical_Appearance.linkInfo.Center.setValue( ('directLink_S_Center', self.obj426.Graphical_Appearance.linkInfo))
    self.obj426.Graphical_Appearance.linkInfo.SecondSegment= widthXfillXdecoration()
    self.obj426.Graphical_Appearance.linkInfo.SecondSegment.width=ATOM3Integer(2)
    self.obj426.Graphical_Appearance.linkInfo.SecondSegment.fill=ATOM3String('black', 20)
    self.obj426.Graphical_Appearance.linkInfo.SecondSegment.stipple=ATOM3String('', 20)
    self.obj426.Graphical_Appearance.linkInfo.SecondSegment.arrow=ATOM3Boolean()
    self.obj426.Graphical_Appearance.linkInfo.SecondSegment.arrow.setValue((' ', 0))
    self.obj426.Graphical_Appearance.linkInfo.SecondSegment.arrow.config = 0
    self.obj426.Graphical_Appearance.linkInfo.SecondSegment.arrowShape1=ATOM3Integer(8)
    self.obj426.Graphical_Appearance.linkInfo.SecondSegment.arrowShape2=ATOM3Integer(10)
    self.obj426.Graphical_Appearance.linkInfo.SecondSegment.arrowShape3=ATOM3Integer(3)
    self.obj426.Graphical_Appearance.linkInfo.SecondSegment.decoration=ATOM3Appearance()
    self.obj426.Graphical_Appearance.linkInfo.SecondSegment.decoration.setValue( ('directLink_S_2ndSegment', self.obj426.Graphical_Appearance.linkInfo.SecondSegment))
    self.obj426.Graphical_Appearance.linkInfo.SecondSegment.decoration_Position=ATOM3Enum(['Up', 'Down', 'Middle', 'No decoration'],3,0)
    self.obj426.Graphical_Appearance.linkInfo.SecondLink= stickylink()
    self.obj426.Graphical_Appearance.linkInfo.SecondLink.arrow=ATOM3Boolean()
    self.obj426.Graphical_Appearance.linkInfo.SecondLink.arrow.setValue((' ', 1))
    self.obj426.Graphical_Appearance.linkInfo.SecondLink.arrow.config = 0
    self.obj426.Graphical_Appearance.linkInfo.SecondLink.arrowShape1=ATOM3Integer(8)
    self.obj426.Graphical_Appearance.linkInfo.SecondLink.arrowShape2=ATOM3Integer(10)
    self.obj426.Graphical_Appearance.linkInfo.SecondLink.arrowShape3=ATOM3Integer(3)
    self.obj426.Graphical_Appearance.linkInfo.SecondLink.decoration=ATOM3Appearance()
    self.obj426.Graphical_Appearance.linkInfo.SecondLink.decoration.setValue( ('directLink_S_2ndLink', self.obj426.Graphical_Appearance.linkInfo.SecondLink))
    self.obj426.Graphical_Appearance.linkInfo.FirstLink.decoration.semObject=self.obj426.Graphical_Appearance.semObject
    self.obj426.Graphical_Appearance.linkInfo.FirstSegment.decoration.semObject=self.obj426.Graphical_Appearance.semObject
    self.obj426.Graphical_Appearance.linkInfo.Center.semObject=self.obj426.Graphical_Appearance.semObject
    self.obj426.Graphical_Appearance.linkInfo.SecondSegment.decoration.semObject=self.obj426.Graphical_Appearance.semObject
    self.obj426.Graphical_Appearance.linkInfo.SecondLink.decoration.semObject=self.obj426.Graphical_Appearance.semObject

    # name
    self.obj426.name.setValue('directLink_S')

    # displaySelect
    self.obj426.displaySelect.setValue( (['attributes', 'constraints', 'actions', 'cardinality'], [0, 0, 0, 0]) )
    self.obj426.displaySelect.config = 0

    # attributes
    self.obj426.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('associationType', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('t_', 20)
    cobj2.isDerivedAttribute = False
    lcobj2.append(cobj2)
    self.obj426.attributes.setValue(lcobj2)

    # cardinality
    self.obj426.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    cobj2=ATOM3Connection()
    cobj2.setValue(('MetaModelElement_S', (('Source', 'Destination'), 0), '0', 'N'))
    lcobj2.append(cobj2)
    cobj2=ATOM3Connection()
    cobj2.setValue(('MetaModelElement_S', (('Source', 'Destination'), 1), '0', 'N'))
    lcobj2.append(cobj2)
    self.obj426.cardinality.setValue(lcobj2)

    # display
    self.obj426.display.setValue('Attributes:\n  - associationType :: String\nMultiplicities:\n  - To MetaModelElement_S: 0 to N\n  - From MetaModelElement_S: 0 to N\n')
    self.obj426.display.setHeight(15)

    # Actions
    self.obj426.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj426.Actions.setValue(lcobj2)

    # Constraints
    self.obj426.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj426.Constraints.setValue(lcobj2)

    self.obj426.graphClass_= graph_CD_Association3
    if self.genGraphics:
       new_obj = graph_CD_Association3(2507.2421875,88.0,self.obj426)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Association3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.8620000000000001, 1.185483870967742]
    else: new_obj = None
    self.obj426.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj426)
    self.globalAndLocalPostcondition(self.obj426, rootNode)
    self.obj426.postAction( rootNode.CREATE )

    self.obj427=CD_Association3(self)
    self.obj427.isGraphObjectVisual = True

    if(hasattr(self.obj427, '_setHierarchicalLink')):
      self.obj427._setHierarchicalLink(False)

    # QOCA
    self.obj427.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <--- Remove this if you want to use QOCA\n\n# Get the high level constraint helper and solver\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n# Constraint only makes sense if there exists 2 objects connected to this link\nif(not (self.in_connections_ and self.out_connections_)): return\n\n# Get the graphical objects (subclass of graphEntity/graphLink) \ngraphicalObjectLink = self.graphObject_\ngraphicalObjectSource = self.in_connections_[0].graphObject_\ngraphicalObjectTarget = self.out_connections_[0].graphObject_\nobjTuple = (graphicalObjectSource, graphicalObjectTarget, graphicalObjectLink)\n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.LeftExactDistance(objTuple, 20)\noc.resolve() # Resolve immediately after creating entity & constraint \n\n'))

    # Graphical_Appearance
    self.obj427.Graphical_Appearance.setValue( ('indirectLink_S', self.obj427))
    self.obj427.Graphical_Appearance.linkInfo=linkEditor(self,self.obj427.Graphical_Appearance.semObject, "indirectLink_S")
    self.obj427.Graphical_Appearance.linkInfo.FirstLink= stickylink()
    self.obj427.Graphical_Appearance.linkInfo.FirstLink.arrow=ATOM3Boolean()
    self.obj427.Graphical_Appearance.linkInfo.FirstLink.arrow.setValue((' ', 0))
    self.obj427.Graphical_Appearance.linkInfo.FirstLink.arrow.config = 0
    self.obj427.Graphical_Appearance.linkInfo.FirstLink.arrowShape1=ATOM3Integer(8)
    self.obj427.Graphical_Appearance.linkInfo.FirstLink.arrowShape2=ATOM3Integer(10)
    self.obj427.Graphical_Appearance.linkInfo.FirstLink.arrowShape3=ATOM3Integer(3)
    self.obj427.Graphical_Appearance.linkInfo.FirstLink.decoration=ATOM3Appearance()
    self.obj427.Graphical_Appearance.linkInfo.FirstLink.decoration.setValue( ('indirectLink_S_1stLink', self.obj427.Graphical_Appearance.linkInfo.FirstLink))
    self.obj427.Graphical_Appearance.linkInfo.FirstSegment= widthXfillXdecoration()
    self.obj427.Graphical_Appearance.linkInfo.FirstSegment.width=ATOM3Integer(2)
    self.obj427.Graphical_Appearance.linkInfo.FirstSegment.fill=ATOM3String('black', 20)
    self.obj427.Graphical_Appearance.linkInfo.FirstSegment.stipple=ATOM3String('', 20)
    self.obj427.Graphical_Appearance.linkInfo.FirstSegment.arrow=ATOM3Boolean()
    self.obj427.Graphical_Appearance.linkInfo.FirstSegment.arrow.setValue((' ', 0))
    self.obj427.Graphical_Appearance.linkInfo.FirstSegment.arrow.config = 0
    self.obj427.Graphical_Appearance.linkInfo.FirstSegment.arrowShape1=ATOM3Integer(8)
    self.obj427.Graphical_Appearance.linkInfo.FirstSegment.arrowShape2=ATOM3Integer(10)
    self.obj427.Graphical_Appearance.linkInfo.FirstSegment.arrowShape3=ATOM3Integer(3)
    self.obj427.Graphical_Appearance.linkInfo.FirstSegment.decoration=ATOM3Appearance()
    self.obj427.Graphical_Appearance.linkInfo.FirstSegment.decoration.setValue( ('indirectLink_S_1stSegment', self.obj427.Graphical_Appearance.linkInfo.FirstSegment))
    self.obj427.Graphical_Appearance.linkInfo.FirstSegment.decoration_Position=ATOM3Enum(['Up', 'Down', 'Middle', 'No decoration'],3,0)
    self.obj427.Graphical_Appearance.linkInfo.Center=ATOM3Appearance()
    self.obj427.Graphical_Appearance.linkInfo.Center.setValue( ('indirectLink_S_Center', self.obj427.Graphical_Appearance.linkInfo))
    self.obj427.Graphical_Appearance.linkInfo.SecondSegment= widthXfillXdecoration()
    self.obj427.Graphical_Appearance.linkInfo.SecondSegment.width=ATOM3Integer(2)
    self.obj427.Graphical_Appearance.linkInfo.SecondSegment.fill=ATOM3String('black', 20)
    self.obj427.Graphical_Appearance.linkInfo.SecondSegment.stipple=ATOM3String('', 20)
    self.obj427.Graphical_Appearance.linkInfo.SecondSegment.arrow=ATOM3Boolean()
    self.obj427.Graphical_Appearance.linkInfo.SecondSegment.arrow.setValue((' ', 0))
    self.obj427.Graphical_Appearance.linkInfo.SecondSegment.arrow.config = 0
    self.obj427.Graphical_Appearance.linkInfo.SecondSegment.arrowShape1=ATOM3Integer(8)
    self.obj427.Graphical_Appearance.linkInfo.SecondSegment.arrowShape2=ATOM3Integer(10)
    self.obj427.Graphical_Appearance.linkInfo.SecondSegment.arrowShape3=ATOM3Integer(3)
    self.obj427.Graphical_Appearance.linkInfo.SecondSegment.decoration=ATOM3Appearance()
    self.obj427.Graphical_Appearance.linkInfo.SecondSegment.decoration.setValue( ('indirectLink_S_2ndSegment', self.obj427.Graphical_Appearance.linkInfo.SecondSegment))
    self.obj427.Graphical_Appearance.linkInfo.SecondSegment.decoration_Position=ATOM3Enum(['Up', 'Down', 'Middle', 'No decoration'],3,0)
    self.obj427.Graphical_Appearance.linkInfo.SecondLink= stickylink()
    self.obj427.Graphical_Appearance.linkInfo.SecondLink.arrow=ATOM3Boolean()
    self.obj427.Graphical_Appearance.linkInfo.SecondLink.arrow.setValue((' ', 1))
    self.obj427.Graphical_Appearance.linkInfo.SecondLink.arrow.config = 0
    self.obj427.Graphical_Appearance.linkInfo.SecondLink.arrowShape1=ATOM3Integer(8)
    self.obj427.Graphical_Appearance.linkInfo.SecondLink.arrowShape2=ATOM3Integer(10)
    self.obj427.Graphical_Appearance.linkInfo.SecondLink.arrowShape3=ATOM3Integer(3)
    self.obj427.Graphical_Appearance.linkInfo.SecondLink.decoration=ATOM3Appearance()
    self.obj427.Graphical_Appearance.linkInfo.SecondLink.decoration.setValue( ('indirectLink_S_2ndLink', self.obj427.Graphical_Appearance.linkInfo.SecondLink))
    self.obj427.Graphical_Appearance.linkInfo.FirstLink.decoration.semObject=self.obj427.Graphical_Appearance.semObject
    self.obj427.Graphical_Appearance.linkInfo.FirstSegment.decoration.semObject=self.obj427.Graphical_Appearance.semObject
    self.obj427.Graphical_Appearance.linkInfo.Center.semObject=self.obj427.Graphical_Appearance.semObject
    self.obj427.Graphical_Appearance.linkInfo.SecondSegment.decoration.semObject=self.obj427.Graphical_Appearance.semObject
    self.obj427.Graphical_Appearance.linkInfo.SecondLink.decoration.semObject=self.obj427.Graphical_Appearance.semObject

    # name
    self.obj427.name.setValue('indirectLink_S')

    # displaySelect
    self.obj427.displaySelect.setValue( (['attributes', 'constraints', 'actions', 'cardinality'], [0, 0, 0, 0]) )
    self.obj427.displaySelect.config = 0

    # attributes
    self.obj427.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj427.attributes.setValue(lcobj2)

    # cardinality
    self.obj427.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    cobj2=ATOM3Connection()
    cobj2.setValue(('MetaModelElement_S', (('Source', 'Destination'), 0), '0', 'N'))
    lcobj2.append(cobj2)
    cobj2=ATOM3Connection()
    cobj2.setValue(('MetaModelElement_S', (('Source', 'Destination'), 1), '0', 'N'))
    lcobj2.append(cobj2)
    self.obj427.cardinality.setValue(lcobj2)

    # display
    self.obj427.display.setValue('Multiplicities:\n  - To MetaModelElement_S: 0 to N\n  - From MetaModelElement_S: 0 to N\n')
    self.obj427.display.setHeight(15)

    # Actions
    self.obj427.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj427.Actions.setValue(lcobj2)

    # Constraints
    self.obj427.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj427.Constraints.setValue(lcobj2)

    self.obj427.graphClass_= graph_CD_Association3
    if self.genGraphics:
       new_obj = graph_CD_Association3(2526.7421875,226.5,self.obj427)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Association3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.8620000000000001, 1.0]
    else: new_obj = None
    self.obj427.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj427)
    self.globalAndLocalPostcondition(self.obj427, rootNode)
    self.obj427.postAction( rootNode.CREATE )

    self.obj428=CD_Association3(self)
    self.obj428.isGraphObjectVisual = True

    if(hasattr(self.obj428, '_setHierarchicalLink')):
      self.obj428._setHierarchicalLink(False)

    # QOCA
    self.obj428.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <--- Remove this if you want to use QOCA\n\n# Get the high level constraint helper and solver\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n# Constraint only makes sense if there exists 2 objects connected to this link\nif(not (self.in_connections_ and self.out_connections_)): return\n\n# Get the graphical objects (subclass of graphEntity/graphLink) \ngraphicalObjectLink = self.graphObject_\ngraphicalObjectSource = self.in_connections_[0].graphObject_\ngraphicalObjectTarget = self.out_connections_[0].graphObject_\nobjTuple = (graphicalObjectSource, graphicalObjectTarget, graphicalObjectLink)\n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.LeftExactDistance(objTuple, 20)\noc.resolve() # Resolve immediately after creating entity & constraint \n\n'))

    # Graphical_Appearance
    self.obj428.Graphical_Appearance.setValue( ('backward_link', self.obj428))
    self.obj428.Graphical_Appearance.linkInfo=linkEditor(self,self.obj428.Graphical_Appearance.semObject, "backward_link")
    self.obj428.Graphical_Appearance.linkInfo.FirstLink= stickylink()
    self.obj428.Graphical_Appearance.linkInfo.FirstLink.arrow=ATOM3Boolean()
    self.obj428.Graphical_Appearance.linkInfo.FirstLink.arrow.setValue((' ', 0))
    self.obj428.Graphical_Appearance.linkInfo.FirstLink.arrow.config = 0
    self.obj428.Graphical_Appearance.linkInfo.FirstLink.arrowShape1=ATOM3Integer(8)
    self.obj428.Graphical_Appearance.linkInfo.FirstLink.arrowShape2=ATOM3Integer(10)
    self.obj428.Graphical_Appearance.linkInfo.FirstLink.arrowShape3=ATOM3Integer(3)
    self.obj428.Graphical_Appearance.linkInfo.FirstLink.decoration=ATOM3Appearance()
    self.obj428.Graphical_Appearance.linkInfo.FirstLink.decoration.setValue( ('backward_link_1stLink', self.obj428.Graphical_Appearance.linkInfo.FirstLink))
    self.obj428.Graphical_Appearance.linkInfo.FirstSegment= widthXfillXdecoration()
    self.obj428.Graphical_Appearance.linkInfo.FirstSegment.width=ATOM3Integer(2)
    self.obj428.Graphical_Appearance.linkInfo.FirstSegment.fill=ATOM3String('black', 20)
    self.obj428.Graphical_Appearance.linkInfo.FirstSegment.stipple=ATOM3String('', 20)
    self.obj428.Graphical_Appearance.linkInfo.FirstSegment.arrow=ATOM3Boolean()
    self.obj428.Graphical_Appearance.linkInfo.FirstSegment.arrow.setValue((' ', 0))
    self.obj428.Graphical_Appearance.linkInfo.FirstSegment.arrow.config = 0
    self.obj428.Graphical_Appearance.linkInfo.FirstSegment.arrowShape1=ATOM3Integer(8)
    self.obj428.Graphical_Appearance.linkInfo.FirstSegment.arrowShape2=ATOM3Integer(10)
    self.obj428.Graphical_Appearance.linkInfo.FirstSegment.arrowShape3=ATOM3Integer(3)
    self.obj428.Graphical_Appearance.linkInfo.FirstSegment.decoration=ATOM3Appearance()
    self.obj428.Graphical_Appearance.linkInfo.FirstSegment.decoration.setValue( ('backward_link_1stSegment', self.obj428.Graphical_Appearance.linkInfo.FirstSegment))
    self.obj428.Graphical_Appearance.linkInfo.FirstSegment.decoration_Position=ATOM3Enum(['Up', 'Down', 'Middle', 'No decoration'],3,0)
    self.obj428.Graphical_Appearance.linkInfo.Center=ATOM3Appearance()
    self.obj428.Graphical_Appearance.linkInfo.Center.setValue( ('backward_link_Center', self.obj428.Graphical_Appearance.linkInfo))
    self.obj428.Graphical_Appearance.linkInfo.SecondSegment= widthXfillXdecoration()
    self.obj428.Graphical_Appearance.linkInfo.SecondSegment.width=ATOM3Integer(2)
    self.obj428.Graphical_Appearance.linkInfo.SecondSegment.fill=ATOM3String('black', 20)
    self.obj428.Graphical_Appearance.linkInfo.SecondSegment.stipple=ATOM3String('', 20)
    self.obj428.Graphical_Appearance.linkInfo.SecondSegment.arrow=ATOM3Boolean()
    self.obj428.Graphical_Appearance.linkInfo.SecondSegment.arrow.setValue((' ', 0))
    self.obj428.Graphical_Appearance.linkInfo.SecondSegment.arrow.config = 0
    self.obj428.Graphical_Appearance.linkInfo.SecondSegment.arrowShape1=ATOM3Integer(8)
    self.obj428.Graphical_Appearance.linkInfo.SecondSegment.arrowShape2=ATOM3Integer(10)
    self.obj428.Graphical_Appearance.linkInfo.SecondSegment.arrowShape3=ATOM3Integer(3)
    self.obj428.Graphical_Appearance.linkInfo.SecondSegment.decoration=ATOM3Appearance()
    self.obj428.Graphical_Appearance.linkInfo.SecondSegment.decoration.setValue( ('backward_link_2ndSegment', self.obj428.Graphical_Appearance.linkInfo.SecondSegment))
    self.obj428.Graphical_Appearance.linkInfo.SecondSegment.decoration_Position=ATOM3Enum(['Up', 'Down', 'Middle', 'No decoration'],3,0)
    self.obj428.Graphical_Appearance.linkInfo.SecondLink= stickylink()
    self.obj428.Graphical_Appearance.linkInfo.SecondLink.arrow=ATOM3Boolean()
    self.obj428.Graphical_Appearance.linkInfo.SecondLink.arrow.setValue((' ', 1))
    self.obj428.Graphical_Appearance.linkInfo.SecondLink.arrow.config = 0
    self.obj428.Graphical_Appearance.linkInfo.SecondLink.arrowShape1=ATOM3Integer(8)
    self.obj428.Graphical_Appearance.linkInfo.SecondLink.arrowShape2=ATOM3Integer(10)
    self.obj428.Graphical_Appearance.linkInfo.SecondLink.arrowShape3=ATOM3Integer(3)
    self.obj428.Graphical_Appearance.linkInfo.SecondLink.decoration=ATOM3Appearance()
    self.obj428.Graphical_Appearance.linkInfo.SecondLink.decoration.setValue( ('backward_link_2ndLink', self.obj428.Graphical_Appearance.linkInfo.SecondLink))
    self.obj428.Graphical_Appearance.linkInfo.FirstLink.decoration.semObject=self.obj428.Graphical_Appearance.semObject
    self.obj428.Graphical_Appearance.linkInfo.FirstSegment.decoration.semObject=self.obj428.Graphical_Appearance.semObject
    self.obj428.Graphical_Appearance.linkInfo.Center.semObject=self.obj428.Graphical_Appearance.semObject
    self.obj428.Graphical_Appearance.linkInfo.SecondSegment.decoration.semObject=self.obj428.Graphical_Appearance.semObject
    self.obj428.Graphical_Appearance.linkInfo.SecondLink.decoration.semObject=self.obj428.Graphical_Appearance.semObject

    # name
    self.obj428.name.setValue('backward_link')

    # displaySelect
    self.obj428.displaySelect.setValue( (['attributes', 'constraints', 'actions', 'cardinality'], [0, 0, 0, 0]) )
    self.obj428.displaySelect.config = 0

    # attributes
    self.obj428.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    cobj2=ATOM3Attribute(self.types)
    cobj2.setValue(('type', 'String', None, ('Key', 0), ('Direct Editing', 1)))
    cobj2.initialValue=ATOM3String('ruleDef', 20)
    cobj2.isDerivedAttribute = False
    lcobj2.append(cobj2)
    self.obj428.attributes.setValue(lcobj2)

    # cardinality
    self.obj428.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    cobj2=ATOM3Connection()
    cobj2.setValue(('MetaModelElement_S', (('Source', 'Destination'), 0), '0', 'N'))
    lcobj2.append(cobj2)
    cobj2=ATOM3Connection()
    cobj2.setValue(('MetaModelElement_T', (('Source', 'Destination'), 1), '0', 'N'))
    lcobj2.append(cobj2)
    self.obj428.cardinality.setValue(lcobj2)

    # display
    self.obj428.display.setValue('Attributes:\n  - type :: String\nMultiplicities:\n  - To MetaModelElement_S: 0 to N\n  - From MetaModelElement_T: 0 to N\n')
    self.obj428.display.setHeight(15)

    # Actions
    self.obj428.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj428.Actions.setValue(lcobj2)

    # Constraints
    self.obj428.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj428.Constraints.setValue(lcobj2)

    self.obj428.graphClass_= graph_CD_Association3
    if self.genGraphics:
       new_obj = graph_CD_Association3(1991.5,1063.0,self.obj428)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Association3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.855, 1.185483870967742]
    else: new_obj = None
    self.obj428.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj428)
    self.globalAndLocalPostcondition(self.obj428, rootNode)
    self.obj428.postAction( rootNode.CREATE )

    self.obj429=CD_Association3(self)
    self.obj429.isGraphObjectVisual = True

    if(hasattr(self.obj429, '_setHierarchicalLink')):
      self.obj429._setHierarchicalLink(False)

    # QOCA
    self.obj429.QOCA.setValue(('QOCA', (['Python', 'OCL'], 1), (['PREaction', 'POSTaction'], 1), (['EDIT', 'SAVE', 'CREATE', 'CONNECT', 'DELETE', 'DISCONNECT', 'TRANSFORM', 'SELECT', 'DRAG', 'DROP', 'MOVE'], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), '"""\nQOCA Constraint Template\nNOTE: DO NOT select a POST/PRE action trigger\nConstraints will be added/removed in a logical manner by other mechanisms.\n"""\nreturn # <--- Remove this if you want to use QOCA\n\n# Get the high level constraint helper and solver\nfrom Qoca.atom3constraints.OffsetConstraints import OffsetConstraints\noc = OffsetConstraints(self.parent.qocaSolver)  \n\n# Constraint only makes sense if there exists 2 objects connected to this link\nif(not (self.in_connections_ and self.out_connections_)): return\n\n# Get the graphical objects (subclass of graphEntity/graphLink) \ngraphicalObjectLink = self.graphObject_\ngraphicalObjectSource = self.in_connections_[0].graphObject_\ngraphicalObjectTarget = self.out_connections_[0].graphObject_\nobjTuple = (graphicalObjectSource, graphicalObjectTarget, graphicalObjectLink)\n\n"""\nExample constraint, see Kernel/QOCA/atom3constraints/OffsetConstraints.py\nFor more types of constraints\n"""\noc.LeftExactDistance(objTuple, 20)\noc.resolve() # Resolve immediately after creating entity & constraint \n\n'))

    # Graphical_Appearance
    self.obj429.Graphical_Appearance.setValue( ('trace_link', self.obj429))
    self.obj429.Graphical_Appearance.linkInfo=linkEditor(self,self.obj429.Graphical_Appearance.semObject, "trace_link")
    self.obj429.Graphical_Appearance.linkInfo.FirstLink= stickylink()
    self.obj429.Graphical_Appearance.linkInfo.FirstLink.arrow=ATOM3Boolean()
    self.obj429.Graphical_Appearance.linkInfo.FirstLink.arrow.setValue((' ', 0))
    self.obj429.Graphical_Appearance.linkInfo.FirstLink.arrow.config = 0
    self.obj429.Graphical_Appearance.linkInfo.FirstLink.arrowShape1=ATOM3Integer(8)
    self.obj429.Graphical_Appearance.linkInfo.FirstLink.arrowShape2=ATOM3Integer(10)
    self.obj429.Graphical_Appearance.linkInfo.FirstLink.arrowShape3=ATOM3Integer(3)
    self.obj429.Graphical_Appearance.linkInfo.FirstLink.decoration=ATOM3Appearance()
    self.obj429.Graphical_Appearance.linkInfo.FirstLink.decoration.setValue( ('trace_link_1stLink', self.obj429.Graphical_Appearance.linkInfo.FirstLink))
    self.obj429.Graphical_Appearance.linkInfo.FirstSegment= widthXfillXdecoration()
    self.obj429.Graphical_Appearance.linkInfo.FirstSegment.width=ATOM3Integer(2)
    self.obj429.Graphical_Appearance.linkInfo.FirstSegment.fill=ATOM3String('black', 20)
    self.obj429.Graphical_Appearance.linkInfo.FirstSegment.stipple=ATOM3String('', 20)
    self.obj429.Graphical_Appearance.linkInfo.FirstSegment.arrow=ATOM3Boolean()
    self.obj429.Graphical_Appearance.linkInfo.FirstSegment.arrow.setValue((' ', 0))
    self.obj429.Graphical_Appearance.linkInfo.FirstSegment.arrow.config = 0
    self.obj429.Graphical_Appearance.linkInfo.FirstSegment.arrowShape1=ATOM3Integer(8)
    self.obj429.Graphical_Appearance.linkInfo.FirstSegment.arrowShape2=ATOM3Integer(10)
    self.obj429.Graphical_Appearance.linkInfo.FirstSegment.arrowShape3=ATOM3Integer(3)
    self.obj429.Graphical_Appearance.linkInfo.FirstSegment.decoration=ATOM3Appearance()
    self.obj429.Graphical_Appearance.linkInfo.FirstSegment.decoration.setValue( ('trace_link_1stSegment', self.obj429.Graphical_Appearance.linkInfo.FirstSegment))
    self.obj429.Graphical_Appearance.linkInfo.FirstSegment.decoration_Position=ATOM3Enum(['Up', 'Down', 'Middle', 'No decoration'],3,0)
    self.obj429.Graphical_Appearance.linkInfo.Center=ATOM3Appearance()
    self.obj429.Graphical_Appearance.linkInfo.Center.setValue( ('trace_link_Center', self.obj429.Graphical_Appearance.linkInfo))
    self.obj429.Graphical_Appearance.linkInfo.SecondSegment= widthXfillXdecoration()
    self.obj429.Graphical_Appearance.linkInfo.SecondSegment.width=ATOM3Integer(2)
    self.obj429.Graphical_Appearance.linkInfo.SecondSegment.fill=ATOM3String('black', 20)
    self.obj429.Graphical_Appearance.linkInfo.SecondSegment.stipple=ATOM3String('', 20)
    self.obj429.Graphical_Appearance.linkInfo.SecondSegment.arrow=ATOM3Boolean()
    self.obj429.Graphical_Appearance.linkInfo.SecondSegment.arrow.setValue((' ', 0))
    self.obj429.Graphical_Appearance.linkInfo.SecondSegment.arrow.config = 0
    self.obj429.Graphical_Appearance.linkInfo.SecondSegment.arrowShape1=ATOM3Integer(8)
    self.obj429.Graphical_Appearance.linkInfo.SecondSegment.arrowShape2=ATOM3Integer(10)
    self.obj429.Graphical_Appearance.linkInfo.SecondSegment.arrowShape3=ATOM3Integer(3)
    self.obj429.Graphical_Appearance.linkInfo.SecondSegment.decoration=ATOM3Appearance()
    self.obj429.Graphical_Appearance.linkInfo.SecondSegment.decoration.setValue( ('trace_link_2ndSegment', self.obj429.Graphical_Appearance.linkInfo.SecondSegment))
    self.obj429.Graphical_Appearance.linkInfo.SecondSegment.decoration_Position=ATOM3Enum(['Up', 'Down', 'Middle', 'No decoration'],3,0)
    self.obj429.Graphical_Appearance.linkInfo.SecondLink= stickylink()
    self.obj429.Graphical_Appearance.linkInfo.SecondLink.arrow=ATOM3Boolean()
    self.obj429.Graphical_Appearance.linkInfo.SecondLink.arrow.setValue((' ', 1))
    self.obj429.Graphical_Appearance.linkInfo.SecondLink.arrow.config = 0
    self.obj429.Graphical_Appearance.linkInfo.SecondLink.arrowShape1=ATOM3Integer(8)
    self.obj429.Graphical_Appearance.linkInfo.SecondLink.arrowShape2=ATOM3Integer(10)
    self.obj429.Graphical_Appearance.linkInfo.SecondLink.arrowShape3=ATOM3Integer(3)
    self.obj429.Graphical_Appearance.linkInfo.SecondLink.decoration=ATOM3Appearance()
    self.obj429.Graphical_Appearance.linkInfo.SecondLink.decoration.setValue( ('trace_link_2ndLink', self.obj429.Graphical_Appearance.linkInfo.SecondLink))
    self.obj429.Graphical_Appearance.linkInfo.FirstLink.decoration.semObject=self.obj429.Graphical_Appearance.semObject
    self.obj429.Graphical_Appearance.linkInfo.FirstSegment.decoration.semObject=self.obj429.Graphical_Appearance.semObject
    self.obj429.Graphical_Appearance.linkInfo.Center.semObject=self.obj429.Graphical_Appearance.semObject
    self.obj429.Graphical_Appearance.linkInfo.SecondSegment.decoration.semObject=self.obj429.Graphical_Appearance.semObject
    self.obj429.Graphical_Appearance.linkInfo.SecondLink.decoration.semObject=self.obj429.Graphical_Appearance.semObject

    # name
    self.obj429.name.setValue('trace_link')

    # displaySelect
    self.obj429.displaySelect.setValue( (['attributes', 'constraints', 'actions', 'cardinality'], [0, 0, 0, 0]) )
    self.obj429.displaySelect.config = 0

    # attributes
    self.obj429.attributes.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj429.attributes.setValue(lcobj2)

    # cardinality
    self.obj429.cardinality.setActionFlags([ 0, 1, 0, 0])
    lcobj2 =[]
    cobj2=ATOM3Connection()
    cobj2.setValue(('MetaModelElement_S', (('Source', 'Destination'), 0), '0', 'N'))
    lcobj2.append(cobj2)
    cobj2=ATOM3Connection()
    cobj2.setValue(('MetaModelElement_T', (('Source', 'Destination'), 1), '0', 'N'))
    lcobj2.append(cobj2)
    self.obj429.cardinality.setValue(lcobj2)

    # display
    self.obj429.display.setValue('Multiplicities:\n  - To MetaModelElement_S: 0 to N\n  - From MetaModelElement_T: 0 to N\n')
    self.obj429.display.setHeight(15)

    # Actions
    self.obj429.Actions.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj429.Actions.setValue(lcobj2)

    # Constraints
    self.obj429.Constraints.setActionFlags([ 1, 1, 1, 0])
    lcobj2 =[]
    self.obj429.Constraints.setValue(lcobj2)

    self.obj429.graphClass_= graph_CD_Association3
    if self.genGraphics:
       new_obj = graph_CD_Association3(2290.0,1056.0,self.obj429)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Association3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
       new_obj.layConstraints['Text Scale'] = 1.0
       new_obj.layConstraints['scale'] = [1.855, 1.0]
    else: new_obj = None
    self.obj429.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj429)
    self.globalAndLocalPostcondition(self.obj429, rootNode)
    self.obj429.postAction( rootNode.CREATE )

    self.obj430=CD_Inheritance3(self)
    self.obj430.isGraphObjectVisual = True

    if(hasattr(self.obj430, '_setHierarchicalLink')):
      self.obj430._setHierarchicalLink(False)

    self.obj430.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(460.953125,310.040522541,self.obj430)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj430.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj430)
    self.globalAndLocalPostcondition(self.obj430, rootNode)
    self.obj430.postAction( rootNode.CREATE )

    self.obj431=CD_Inheritance3(self)
    self.obj431.isGraphObjectVisual = True

    if(hasattr(self.obj431, '_setHierarchicalLink')):
      self.obj431._setHierarchicalLink(False)

    self.obj431.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(668.0,934.0,self.obj431)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj431.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj431)
    self.globalAndLocalPostcondition(self.obj431, rootNode)
    self.obj431.postAction( rootNode.CREATE )

    self.obj432=CD_Inheritance3(self)
    self.obj432.isGraphObjectVisual = True

    if(hasattr(self.obj432, '_setHierarchicalLink')):
      self.obj432._setHierarchicalLink(False)

    self.obj432.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(308.0,622.0,self.obj432)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj432.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj432)
    self.globalAndLocalPostcondition(self.obj432, rootNode)
    self.obj432.postAction( rootNode.CREATE )

    self.obj433=CD_Inheritance3(self)
    self.obj433.isGraphObjectVisual = True

    if(hasattr(self.obj433, '_setHierarchicalLink')):
      self.obj433._setHierarchicalLink(False)

    self.obj433.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(349.0,783.0,self.obj433)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj433.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj433)
    self.globalAndLocalPostcondition(self.obj433, rootNode)
    self.obj433.postAction( rootNode.CREATE )

    self.obj434=CD_Inheritance3(self)
    self.obj434.isGraphObjectVisual = True

    if(hasattr(self.obj434, '_setHierarchicalLink')):
      self.obj434._setHierarchicalLink(False)

    self.obj434.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(372.0,809.0,self.obj434)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj434.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj434)
    self.globalAndLocalPostcondition(self.obj434, rootNode)
    self.obj434.postAction( rootNode.CREATE )

    self.obj435=CD_Inheritance3(self)
    self.obj435.isGraphObjectVisual = True

    if(hasattr(self.obj435, '_setHierarchicalLink')):
      self.obj435._setHierarchicalLink(False)

    self.obj435.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(468.0,645.0,self.obj435)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj435.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj435)
    self.globalAndLocalPostcondition(self.obj435, rootNode)
    self.obj435.postAction( rootNode.CREATE )

    self.obj436=CD_Inheritance3(self)
    self.obj436.isGraphObjectVisual = True

    if(hasattr(self.obj436, '_setHierarchicalLink')):
      self.obj436._setHierarchicalLink(False)

    self.obj436.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(929.875,1107.0,self.obj436)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj436.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj436)
    self.globalAndLocalPostcondition(self.obj436, rootNode)
    self.obj436.postAction( rootNode.CREATE )

    self.obj437=CD_Inheritance3(self)
    self.obj437.isGraphObjectVisual = True

    if(hasattr(self.obj437, '_setHierarchicalLink')):
      self.obj437._setHierarchicalLink(False)

    self.obj437.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(618.0,1074.0,self.obj437)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj437.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj437)
    self.globalAndLocalPostcondition(self.obj437, rootNode)
    self.obj437.postAction( rootNode.CREATE )

    self.obj438=CD_Inheritance3(self)
    self.obj438.isGraphObjectVisual = True

    if(hasattr(self.obj438, '_setHierarchicalLink')):
      self.obj438._setHierarchicalLink(False)

    self.obj438.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(801.0,1104.0,self.obj438)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj438.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj438)
    self.globalAndLocalPostcondition(self.obj438, rootNode)
    self.obj438.postAction( rootNode.CREATE )

    self.obj439=CD_Inheritance3(self)
    self.obj439.isGraphObjectVisual = True

    if(hasattr(self.obj439, '_setHierarchicalLink')):
      self.obj439._setHierarchicalLink(False)

    self.obj439.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(638.0,1081.0,self.obj439)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj439.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj439)
    self.globalAndLocalPostcondition(self.obj439, rootNode)
    self.obj439.postAction( rootNode.CREATE )

    self.obj440=CD_Inheritance3(self)
    self.obj440.isGraphObjectVisual = True

    if(hasattr(self.obj440, '_setHierarchicalLink')):
      self.obj440._setHierarchicalLink(False)

    self.obj440.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(899.0,1275.0,self.obj440)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj440.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj440)
    self.globalAndLocalPostcondition(self.obj440, rootNode)
    self.obj440.postAction( rootNode.CREATE )

    self.obj441=CD_Inheritance3(self)
    self.obj441.isGraphObjectVisual = True

    if(hasattr(self.obj441, '_setHierarchicalLink')):
      self.obj441._setHierarchicalLink(False)

    self.obj441.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(855.0,1451.0,self.obj441)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj441.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj441)
    self.globalAndLocalPostcondition(self.obj441, rootNode)
    self.obj441.postAction( rootNode.CREATE )

    self.obj442=CD_Inheritance3(self)
    self.obj442.isGraphObjectVisual = True

    if(hasattr(self.obj442, '_setHierarchicalLink')):
      self.obj442._setHierarchicalLink(False)

    self.obj442.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(898.0,1621.0,self.obj442)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj442.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj442)
    self.globalAndLocalPostcondition(self.obj442, rootNode)
    self.obj442.postAction( rootNode.CREATE )

    self.obj443=CD_Inheritance3(self)
    self.obj443.isGraphObjectVisual = True

    if(hasattr(self.obj443, '_setHierarchicalLink')):
      self.obj443._setHierarchicalLink(False)

    self.obj443.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(930.0,1522.0,self.obj443)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj443.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj443)
    self.globalAndLocalPostcondition(self.obj443, rootNode)
    self.obj443.postAction( rootNode.CREATE )

    self.obj444=CD_Inheritance3(self)
    self.obj444.isGraphObjectVisual = True

    if(hasattr(self.obj444, '_setHierarchicalLink')):
      self.obj444._setHierarchicalLink(False)

    self.obj444.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1032.875,1278.0,self.obj444)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj444.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj444)
    self.globalAndLocalPostcondition(self.obj444, rootNode)
    self.obj444.postAction( rootNode.CREATE )

    self.obj445=CD_Inheritance3(self)
    self.obj445.isGraphObjectVisual = True

    if(hasattr(self.obj445, '_setHierarchicalLink')):
      self.obj445._setHierarchicalLink(False)

    self.obj445.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1246.0,1144.0,self.obj445)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj445.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj445)
    self.globalAndLocalPostcondition(self.obj445, rootNode)
    self.obj445.postAction( rootNode.CREATE )

    self.obj446=CD_Inheritance3(self)
    self.obj446.isGraphObjectVisual = True

    if(hasattr(self.obj446, '_setHierarchicalLink')):
      self.obj446._setHierarchicalLink(False)

    self.obj446.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(961.0,1487.0,self.obj446)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj446.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj446)
    self.globalAndLocalPostcondition(self.obj446, rootNode)
    self.obj446.postAction( rootNode.CREATE )

    self.obj447=CD_Inheritance3(self)
    self.obj447.isGraphObjectVisual = True

    if(hasattr(self.obj447, '_setHierarchicalLink')):
      self.obj447._setHierarchicalLink(False)

    self.obj447.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1208.0,1461.0,self.obj447)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj447.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj447)
    self.globalAndLocalPostcondition(self.obj447, rootNode)
    self.obj447.postAction( rootNode.CREATE )

    self.obj448=CD_Inheritance3(self)
    self.obj448.isGraphObjectVisual = True

    if(hasattr(self.obj448, '_setHierarchicalLink')):
      self.obj448._setHierarchicalLink(False)

    self.obj448.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1311.0,1118.5,self.obj448)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj448.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj448)
    self.globalAndLocalPostcondition(self.obj448, rootNode)
    self.obj448.postAction( rootNode.CREATE )

    self.obj449=CD_Inheritance3(self)
    self.obj449.isGraphObjectVisual = True

    if(hasattr(self.obj449, '_setHierarchicalLink')):
      self.obj449._setHierarchicalLink(False)

    self.obj449.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1302.0,1129.0,self.obj449)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj449.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj449)
    self.globalAndLocalPostcondition(self.obj449, rootNode)
    self.obj449.postAction( rootNode.CREATE )

    self.obj450=CD_Inheritance3(self)
    self.obj450.isGraphObjectVisual = True

    if(hasattr(self.obj450, '_setHierarchicalLink')):
      self.obj450._setHierarchicalLink(False)

    self.obj450.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1430.0,1475.0,self.obj450)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj450.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj450)
    self.globalAndLocalPostcondition(self.obj450, rootNode)
    self.obj450.postAction( rootNode.CREATE )

    self.obj451=CD_Inheritance3(self)
    self.obj451.isGraphObjectVisual = True

    if(hasattr(self.obj451, '_setHierarchicalLink')):
      self.obj451._setHierarchicalLink(False)

    self.obj451.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1510.0,1455.0,self.obj451)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj451.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj451)
    self.globalAndLocalPostcondition(self.obj451, rootNode)
    self.obj451.postAction( rootNode.CREATE )

    self.obj452=CD_Inheritance3(self)
    self.obj452.isGraphObjectVisual = True

    if(hasattr(self.obj452, '_setHierarchicalLink')):
      self.obj452._setHierarchicalLink(False)

    self.obj452.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1328.0,1095.0,self.obj452)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj452.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj452)
    self.globalAndLocalPostcondition(self.obj452, rootNode)
    self.obj452.postAction( rootNode.CREATE )

    self.obj453=CD_Inheritance3(self)
    self.obj453.isGraphObjectVisual = True

    if(hasattr(self.obj453, '_setHierarchicalLink')):
      self.obj453._setHierarchicalLink(False)

    self.obj453.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1334.0,1089.0,self.obj453)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj453.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj453)
    self.globalAndLocalPostcondition(self.obj453, rootNode)
    self.obj453.postAction( rootNode.CREATE )

    self.obj454=CD_Inheritance3(self)
    self.obj454.isGraphObjectVisual = True

    if(hasattr(self.obj454, '_setHierarchicalLink')):
      self.obj454._setHierarchicalLink(False)

    self.obj454.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1329.0,1078.0,self.obj454)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj454.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj454)
    self.globalAndLocalPostcondition(self.obj454, rootNode)
    self.obj454.postAction( rootNode.CREATE )

    self.obj455=CD_Inheritance3(self)
    self.obj455.isGraphObjectVisual = True

    if(hasattr(self.obj455, '_setHierarchicalLink')):
      self.obj455._setHierarchicalLink(False)

    self.obj455.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(2232.0,1488.0,self.obj455)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj455.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj455)
    self.globalAndLocalPostcondition(self.obj455, rootNode)
    self.obj455.postAction( rootNode.CREATE )

    self.obj456=CD_Inheritance3(self)
    self.obj456.isGraphObjectVisual = True

    if(hasattr(self.obj456, '_setHierarchicalLink')):
      self.obj456._setHierarchicalLink(False)

    self.obj456.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(2365.0,1456.0,self.obj456)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj456.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj456)
    self.globalAndLocalPostcondition(self.obj456, rootNode)
    self.obj456.postAction( rootNode.CREATE )

    self.obj457=CD_Inheritance3(self)
    self.obj457.isGraphObjectVisual = True

    if(hasattr(self.obj457, '_setHierarchicalLink')):
      self.obj457._setHierarchicalLink(False)

    self.obj457.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(742.3984375,330.851997951,self.obj457)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj457.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj457)
    self.globalAndLocalPostcondition(self.obj457, rootNode)
    self.obj457.postAction( rootNode.CREATE )

    self.obj458=CD_Inheritance3(self)
    self.obj458.isGraphObjectVisual = True

    if(hasattr(self.obj458, '_setHierarchicalLink')):
      self.obj458._setHierarchicalLink(False)

    self.obj458.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(736.0,511.0,self.obj458)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj458.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj458)
    self.globalAndLocalPostcondition(self.obj458, rootNode)
    self.obj458.postAction( rootNode.CREATE )

    self.obj459=CD_Inheritance3(self)
    self.obj459.isGraphObjectVisual = True

    if(hasattr(self.obj459, '_setHierarchicalLink')):
      self.obj459._setHierarchicalLink(False)

    self.obj459.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(779.0,671.0,self.obj459)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj459.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj459)
    self.globalAndLocalPostcondition(self.obj459, rootNode)
    self.obj459.postAction( rootNode.CREATE )

    self.obj460=CD_Inheritance3(self)
    self.obj460.isGraphObjectVisual = True

    if(hasattr(self.obj460, '_setHierarchicalLink')):
      self.obj460._setHierarchicalLink(False)

    self.obj460.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(936.0,511.0,self.obj460)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj460.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj460)
    self.globalAndLocalPostcondition(self.obj460, rootNode)
    self.obj460.postAction( rootNode.CREATE )

    self.obj461=CD_Inheritance3(self)
    self.obj461.isGraphObjectVisual = True

    if(hasattr(self.obj461, '_setHierarchicalLink')):
      self.obj461._setHierarchicalLink(False)

    self.obj461.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1020.6875,661.957746479,self.obj461)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj461.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj461)
    self.globalAndLocalPostcondition(self.obj461, rootNode)
    self.obj461.postAction( rootNode.CREATE )

    self.obj462=CD_Inheritance3(self)
    self.obj462.isGraphObjectVisual = True

    if(hasattr(self.obj462, '_setHierarchicalLink')):
      self.obj462._setHierarchicalLink(False)

    self.obj462.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(976.3984375,337.466752049,self.obj462)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj462.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj462)
    self.globalAndLocalPostcondition(self.obj462, rootNode)
    self.obj462.postAction( rootNode.CREATE )

    self.obj463=CD_Inheritance3(self)
    self.obj463.isGraphObjectVisual = True

    if(hasattr(self.obj463, '_setHierarchicalLink')):
      self.obj463._setHierarchicalLink(False)

    self.obj463.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1242.3984375,350.466752049,self.obj463)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj463.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj463)
    self.globalAndLocalPostcondition(self.obj463, rootNode)
    self.obj463.postAction( rootNode.CREATE )

    self.obj464=CD_Inheritance3(self)
    self.obj464.isGraphObjectVisual = True

    if(hasattr(self.obj464, '_setHierarchicalLink')):
      self.obj464._setHierarchicalLink(False)

    self.obj464.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1156.0,511.0,self.obj464)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj464.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj464)
    self.globalAndLocalPostcondition(self.obj464, rootNode)
    self.obj464.postAction( rootNode.CREATE )

    self.obj465=CD_Inheritance3(self)
    self.obj465.isGraphObjectVisual = True

    if(hasattr(self.obj465, '_setHierarchicalLink')):
      self.obj465._setHierarchicalLink(False)

    self.obj465.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1236.0,591.0,self.obj465)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj465.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj465)
    self.globalAndLocalPostcondition(self.obj465, rootNode)
    self.obj465.postAction( rootNode.CREATE )

    self.obj466=CD_Inheritance3(self)
    self.obj466.isGraphObjectVisual = True

    if(hasattr(self.obj466, '_setHierarchicalLink')):
      self.obj466._setHierarchicalLink(False)

    self.obj466.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1302.0,812.0,self.obj466)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj466.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj466)
    self.globalAndLocalPostcondition(self.obj466, rootNode)
    self.obj466.postAction( rootNode.CREATE )

    self.obj467=CD_Inheritance3(self)
    self.obj467.isGraphObjectVisual = True

    if(hasattr(self.obj467, '_setHierarchicalLink')):
      self.obj467._setHierarchicalLink(False)

    self.obj467.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1538.078125,385.540522541,self.obj467)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj467.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj467)
    self.globalAndLocalPostcondition(self.obj467, rootNode)
    self.obj467.postAction( rootNode.CREATE )

    self.obj468=CD_Inheritance3(self)
    self.obj468.isGraphObjectVisual = True

    if(hasattr(self.obj468, '_setHierarchicalLink')):
      self.obj468._setHierarchicalLink(False)

    self.obj468.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1456.0,551.0,self.obj468)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj468.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj468)
    self.globalAndLocalPostcondition(self.obj468, rootNode)
    self.obj468.postAction( rootNode.CREATE )

    self.obj469=CD_Inheritance3(self)
    self.obj469.isGraphObjectVisual = True

    if(hasattr(self.obj469, '_setHierarchicalLink')):
      self.obj469._setHierarchicalLink(False)

    self.obj469.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1506.0,631.0,self.obj469)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj469.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj469)
    self.globalAndLocalPostcondition(self.obj469, rootNode)
    self.obj469.postAction( rootNode.CREATE )

    self.obj470=CD_Inheritance3(self)
    self.obj470.isGraphObjectVisual = True

    if(hasattr(self.obj470, '_setHierarchicalLink')):
      self.obj470._setHierarchicalLink(False)

    self.obj470.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1550.0,771.0,self.obj470)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj470.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj470)
    self.globalAndLocalPostcondition(self.obj470, rootNode)
    self.obj470.postAction( rootNode.CREATE )

    self.obj471=CD_Inheritance3(self)
    self.obj471.isGraphObjectVisual = True

    if(hasattr(self.obj471, '_setHierarchicalLink')):
      self.obj471._setHierarchicalLink(False)

    self.obj471.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(264.828125,2024.42622951,self.obj471)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj471.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj471)
    self.globalAndLocalPostcondition(self.obj471, rootNode)
    self.obj471.postAction( rootNode.CREATE )

    self.obj472=CD_Inheritance3(self)
    self.obj472.isGraphObjectVisual = True

    if(hasattr(self.obj472, '_setHierarchicalLink')):
      self.obj472._setHierarchicalLink(False)

    self.obj472.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(451.828125,2034.42622951,self.obj472)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj472.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj472)
    self.globalAndLocalPostcondition(self.obj472, rootNode)
    self.obj472.postAction( rootNode.CREATE )

    self.obj473=CD_Inheritance3(self)
    self.obj473.isGraphObjectVisual = True

    if(hasattr(self.obj473, '_setHierarchicalLink')):
      self.obj473._setHierarchicalLink(False)

    self.obj473.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(594.828125,2052.42622951,self.obj473)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj473.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj473)
    self.globalAndLocalPostcondition(self.obj473, rootNode)
    self.obj473.postAction( rootNode.CREATE )

    self.obj474=CD_Inheritance3(self)
    self.obj474.isGraphObjectVisual = True

    if(hasattr(self.obj474, '_setHierarchicalLink')):
      self.obj474._setHierarchicalLink(False)

    self.obj474.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1972.828125,2057.42622951,self.obj474)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj474.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj474)
    self.globalAndLocalPostcondition(self.obj474, rootNode)
    self.obj474.postAction( rootNode.CREATE )

    self.obj475=CD_Inheritance3(self)
    self.obj475.isGraphObjectVisual = True

    if(hasattr(self.obj475, '_setHierarchicalLink')):
      self.obj475._setHierarchicalLink(False)

    self.obj475.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(176.0,2241.0,self.obj475)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj475.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj475)
    self.globalAndLocalPostcondition(self.obj475, rootNode)
    self.obj475.postAction( rootNode.CREATE )

    self.obj476=CD_Inheritance3(self)
    self.obj476.isGraphObjectVisual = True

    if(hasattr(self.obj476, '_setHierarchicalLink')):
      self.obj476._setHierarchicalLink(False)

    self.obj476.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(225.0,2586.0,self.obj476)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj476.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj476)
    self.globalAndLocalPostcondition(self.obj476, rootNode)
    self.obj476.postAction( rootNode.CREATE )

    self.obj477=CD_Inheritance3(self)
    self.obj477.isGraphObjectVisual = True

    if(hasattr(self.obj477, '_setHierarchicalLink')):
      self.obj477._setHierarchicalLink(False)

    self.obj477.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(794.828125,2061.42622951,self.obj477)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj477.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj477)
    self.globalAndLocalPostcondition(self.obj477, rootNode)
    self.obj477.postAction( rootNode.CREATE )

    self.obj478=CD_Inheritance3(self)
    self.obj478.isGraphObjectVisual = True

    if(hasattr(self.obj478, '_setHierarchicalLink')):
      self.obj478._setHierarchicalLink(False)

    self.obj478.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(826.0,2245.0,self.obj478)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj478.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj478)
    self.globalAndLocalPostcondition(self.obj478, rootNode)
    self.obj478.postAction( rootNode.CREATE )

    self.obj479=CD_Inheritance3(self)
    self.obj479.isGraphObjectVisual = True

    if(hasattr(self.obj479, '_setHierarchicalLink')):
      self.obj479._setHierarchicalLink(False)

    self.obj479.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(133.5,2421.0,self.obj479)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj479.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj479)
    self.globalAndLocalPostcondition(self.obj479, rootNode)
    self.obj479.postAction( rootNode.CREATE )

    self.obj480=CD_Inheritance3(self)
    self.obj480.isGraphObjectVisual = True

    if(hasattr(self.obj480, '_setHierarchicalLink')):
      self.obj480._setHierarchicalLink(False)

    self.obj480.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1953.5,2252.0,self.obj480)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj480.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj480)
    self.globalAndLocalPostcondition(self.obj480, rootNode)
    self.obj480.postAction( rootNode.CREATE )

    self.obj481=CD_Inheritance3(self)
    self.obj481.isGraphObjectVisual = True

    if(hasattr(self.obj481, '_setHierarchicalLink')):
      self.obj481._setHierarchicalLink(False)

    self.obj481.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(2067.0,2246.0,self.obj481)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj481.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj481)
    self.globalAndLocalPostcondition(self.obj481, rootNode)
    self.obj481.postAction( rootNode.CREATE )

    self.obj482=CD_Inheritance3(self)
    self.obj482.isGraphObjectVisual = True

    if(hasattr(self.obj482, '_setHierarchicalLink')):
      self.obj482._setHierarchicalLink(False)

    self.obj482.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(2338.5,2248.0,self.obj482)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj482.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj482)
    self.globalAndLocalPostcondition(self.obj482, rootNode)
    self.obj482.postAction( rootNode.CREATE )

    self.obj483=CD_Inheritance3(self)
    self.obj483.isGraphObjectVisual = True

    if(hasattr(self.obj483, '_setHierarchicalLink')):
      self.obj483._setHierarchicalLink(False)

    self.obj483.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1776.046875,2063.42622951,self.obj483)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj483.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj483)
    self.globalAndLocalPostcondition(self.obj483, rootNode)
    self.obj483.postAction( rootNode.CREATE )

    self.obj484=CD_Inheritance3(self)
    self.obj484.isGraphObjectVisual = True

    if(hasattr(self.obj484, '_setHierarchicalLink')):
      self.obj484._setHierarchicalLink(False)

    self.obj484.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1057.828125,2058.42622951,self.obj484)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj484.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj484)
    self.globalAndLocalPostcondition(self.obj484, rootNode)
    self.obj484.postAction( rootNode.CREATE )

    self.obj485=CD_Inheritance3(self)
    self.obj485.isGraphObjectVisual = True

    if(hasattr(self.obj485, '_setHierarchicalLink')):
      self.obj485._setHierarchicalLink(False)

    self.obj485.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1176.328125,2056.42622951,self.obj485)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj485.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj485)
    self.globalAndLocalPostcondition(self.obj485, rootNode)
    self.obj485.postAction( rootNode.CREATE )

    self.obj486=CD_Inheritance3(self)
    self.obj486.isGraphObjectVisual = True

    if(hasattr(self.obj486, '_setHierarchicalLink')):
      self.obj486._setHierarchicalLink(False)

    self.obj486.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1462.625,2057.5,self.obj486)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj486.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj486)
    self.globalAndLocalPostcondition(self.obj486, rootNode)
    self.obj486.postAction( rootNode.CREATE )

    self.obj487=CD_Inheritance3(self)
    self.obj487.isGraphObjectVisual = True

    if(hasattr(self.obj487, '_setHierarchicalLink')):
      self.obj487._setHierarchicalLink(False)

    self.obj487.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1569.875,2057.5,self.obj487)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj487.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj487)
    self.globalAndLocalPostcondition(self.obj487, rootNode)
    self.obj487.postAction( rootNode.CREATE )

    self.obj488=CD_Inheritance3(self)
    self.obj488.isGraphObjectVisual = True

    if(hasattr(self.obj488, '_setHierarchicalLink')):
      self.obj488._setHierarchicalLink(False)

    self.obj488.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1776.5,2265.0,self.obj488)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj488.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj488)
    self.globalAndLocalPostcondition(self.obj488, rootNode)
    self.obj488.postAction( rootNode.CREATE )

    self.obj489=CD_Inheritance3(self)
    self.obj489.isGraphObjectVisual = True

    if(hasattr(self.obj489, '_setHierarchicalLink')):
      self.obj489._setHierarchicalLink(False)

    self.obj489.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1778.0,2251.0,self.obj489)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj489.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj489)
    self.globalAndLocalPostcondition(self.obj489, rootNode)
    self.obj489.postAction( rootNode.CREATE )

    self.obj490=CD_Inheritance3(self)
    self.obj490.isGraphObjectVisual = True

    if(hasattr(self.obj490, '_setHierarchicalLink')):
      self.obj490._setHierarchicalLink(False)

    self.obj490.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(2483.0,2243.0,self.obj490)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj490.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj490)
    self.globalAndLocalPostcondition(self.obj490, rootNode)
    self.obj490.postAction( rootNode.CREATE )

    self.obj491=CD_Inheritance3(self)
    self.obj491.isGraphObjectVisual = True

    if(hasattr(self.obj491, '_setHierarchicalLink')):
      self.obj491._setHierarchicalLink(False)

    self.obj491.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(2700.0,2239.0,self.obj491)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj491.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj491)
    self.globalAndLocalPostcondition(self.obj491, rootNode)
    self.obj491.postAction( rootNode.CREATE )

    self.obj492=CD_Inheritance3(self)
    self.obj492.isGraphObjectVisual = True

    if(hasattr(self.obj492, '_setHierarchicalLink')):
      self.obj492._setHierarchicalLink(False)

    self.obj492.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(2021.0,2479.0,self.obj492)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj492.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj492)
    self.globalAndLocalPostcondition(self.obj492, rootNode)
    self.obj492.postAction( rootNode.CREATE )

    self.obj493=CD_Inheritance3(self)
    self.obj493.isGraphObjectVisual = True

    if(hasattr(self.obj493, '_setHierarchicalLink')):
      self.obj493._setHierarchicalLink(False)

    self.obj493.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(2031.0,2479.0,self.obj493)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj493.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj493)
    self.globalAndLocalPostcondition(self.obj493, rootNode)
    self.obj493.postAction( rootNode.CREATE )

    self.obj494=CD_Inheritance3(self)
    self.obj494.isGraphObjectVisual = True

    if(hasattr(self.obj494, '_setHierarchicalLink')):
      self.obj494._setHierarchicalLink(False)

    self.obj494.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(2230.5,2240.0,self.obj494)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj494.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj494)
    self.globalAndLocalPostcondition(self.obj494, rootNode)
    self.obj494.postAction( rootNode.CREATE )

    self.obj495=CD_Inheritance3(self)
    self.obj495.isGraphObjectVisual = True

    if(hasattr(self.obj495, '_setHierarchicalLink')):
      self.obj495._setHierarchicalLink(False)

    self.obj495.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(2467.5,2256.0,self.obj495)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj495.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj495)
    self.globalAndLocalPostcondition(self.obj495, rootNode)
    self.obj495.postAction( rootNode.CREATE )

    self.obj496=CD_Inheritance3(self)
    self.obj496.isGraphObjectVisual = True

    if(hasattr(self.obj496, '_setHierarchicalLink')):
      self.obj496._setHierarchicalLink(False)

    self.obj496.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(1896.0,2601.0,self.obj496)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj496.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj496)
    self.globalAndLocalPostcondition(self.obj496, rootNode)
    self.obj496.postAction( rootNode.CREATE )

    self.obj497=CD_Inheritance3(self)
    self.obj497.isGraphObjectVisual = True

    if(hasattr(self.obj497, '_setHierarchicalLink')):
      self.obj497._setHierarchicalLink(False)

    self.obj497.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(2675.0,2249.0,self.obj497)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj497.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj497)
    self.globalAndLocalPostcondition(self.obj497, rootNode)
    self.obj497.postAction( rootNode.CREATE )

    self.obj498=CD_Inheritance3(self)
    self.obj498.isGraphObjectVisual = True

    if(hasattr(self.obj498, '_setHierarchicalLink')):
      self.obj498._setHierarchicalLink(False)

    self.obj498.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(2876.0,2237.0,self.obj498)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj498.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj498)
    self.globalAndLocalPostcondition(self.obj498, rootNode)
    self.obj498.postAction( rootNode.CREATE )

    self.obj499=CD_Inheritance3(self)
    self.obj499.isGraphObjectVisual = True

    if(hasattr(self.obj499, '_setHierarchicalLink')):
      self.obj499._setHierarchicalLink(False)

    self.obj499.graphClass_= graph_CD_Inheritance3
    if self.genGraphics:
       new_obj = graph_CD_Inheritance3(2900.0,2225.0,self.obj499)
       new_obj.DrawObject(self.UMLmodel)
       self.UMLmodel.addtag_withtag("CD_Inheritance3", new_obj.tag)
       new_obj.layConstraints = dict() # Graphical Layout Constraints 
    else: new_obj = None
    self.obj499.graphObject_ = new_obj

    # Add node to the root: rootNode
    rootNode.addNode(self.obj499)
    self.globalAndLocalPostcondition(self.obj499, rootNode)
    self.obj499.postAction( rootNode.CREATE )

    # Connections for obj350 (graphObject_: Obj238) named MatchModel
    self.drawConnections(
(self.obj350,self.obj422,[100.0, 221.0, 121.0, 395.0],"true", 2),
(self.obj350,self.obj423,[271.2265625, 121.0, 745.5625, 123.0],"true", 2) )
    # Connections for obj351 (graphObject_: Obj239) named ApplyModel
    self.drawConnections(
(self.obj351,self.obj424,[277.8984375, 1938.0, 572.123046875, 1947.0],"true", 2) )
    # Connections for obj352 (graphObject_: Obj240) named MetaModelElement_S
    self.drawConnections(
(self.obj352,self.obj426,[1630.296875, 153.27684426236064, 2507.2421875, 88.0, 2507.2421875, 88.0],"true", 3),
(self.obj352,self.obj427,[1630.296875, 214.00471311481968, 2526.7421875, 226.5, 2526.7421875, 226.5],"true", 3) )
    # Connections for obj353 (graphObject_: Obj241) named MetaModelElement_T
    self.drawConnections(
(self.obj353,self.obj425,[1605.09375, 1853.2622950819673, 3150.5800781249995, 1878.0, 3150.5800781200001, 1878.0],"true", 3),
(self.obj353,self.obj428,[1605.09375, 1853.2622950819673, 1988.0, 1743.0, 1991.5, 1063.0],"true", 3),
(self.obj353,self.obj429,[1605.09375, 1853.2622950819673, 2280.0, 1735.0, 2290.0, 1056.0],"true", 3) )
    # Connections for obj354 (graphObject_: Obj242) named Element
    self.drawConnections(
(self.obj354,self.obj430,[456.0, 461.0, 460.953125, 310.04052254099997],"true", 2) )
    # Connections for obj355 (graphObject_: Obj243) named NamedElement
    self.drawConnections(
(self.obj355,self.obj431,[676.0, 941.0, 668.0, 934.0],"true", 2) )
    # Connections for obj356 (graphObject_: Obj244) named Trigger_S
    self.drawConnections(
(self.obj356,self.obj432,[296.0, 641.0, 308.0, 622.0],"true", 2) )
    # Connections for obj357 (graphObject_: Obj245) named Action
    self.drawConnections(
(self.obj357,self.obj433,[296.0, 801.0, 349.0, 783.0],"true", 2) )
    # Connections for obj358 (graphObject_: Obj246) named PortRef
    self.drawConnections(
(self.obj358,self.obj435,[456.0, 661.0, 468.0, 645.0],"true", 2) )
    # Connections for obj359 (graphObject_: Obj247) named PortConnectorRef
    self.drawConnections(
(self.obj359,self.obj434,[376.0, 821.0, 372.0, 809.0],"true", 2) )
    # Connections for obj360 (graphObject_: Obj248) named StateMachineElement
    self.drawConnections(
(self.obj360,self.obj436,[938.25, 1121.0, 929.875, 1107.0],"true", 2) )
    # Connections for obj361 (graphObject_: Obj249) named Protocol
    self.drawConnections(
(self.obj361,self.obj437,[556.0, 1121.0, 618.0, 1074.0],"true", 2) )
    # Connections for obj362 (graphObject_: Obj250) named Signal
    self.drawConnections(
(self.obj362,self.obj439,[596.0, 1301.0, 638.0, 1081.0],"true", 2) )
    # Connections for obj363 (graphObject_: Obj251) named Port
    self.drawConnections(
(self.obj363,self.obj438,[796.0, 1121.0, 801.0, 1104.0],"true", 2) )
    # Connections for obj364 (graphObject_: Obj252) named Vertex
    self.drawConnections(
(self.obj364,self.obj440,[876.0, 1301.0, 899.0, 1275.0],"true", 2) )
    # Connections for obj365 (graphObject_: Obj253) named InitialPoint
    self.drawConnections(
(self.obj365,self.obj441,[856.0, 1461.0, 855.0, 1451.0],"true", 2) )
    # Connections for obj366 (graphObject_: Obj254) named EntryPoint
    self.drawConnections(
(self.obj366,self.obj442,[876.0, 1641.0, 898.0, 1621.0],"true", 2) )
    # Connections for obj367 (graphObject_: Obj255) named ExitPoint
    self.drawConnections(
(self.obj367,self.obj443,[976.0, 1641.0, 930.0, 1522.0],"true", 2) )
    # Connections for obj368 (graphObject_: Obj256) named Transition
    self.drawConnections(
(self.obj368,self.obj444,[1036.0, 1301.0, 1032.875, 1278.0],"true", 2) )
    # Connections for obj369 (graphObject_: Obj257) named StateMachine
    self.drawConnections(
(self.obj369,self.obj445,[1236.0, 1301.0, 1246.0, 1144.0],"true", 2) )
    # Connections for obj370 (graphObject_: Obj258) named State
    self.drawConnections(
(self.obj370,self.obj446,[1001.0, 1521.0, 961.0, 1487.0],"true", 2),
(self.obj370,self.obj447,[1156.0, 1481.0, 1208.0, 1461.0],"true", 2) )
    # Connections for obj371 (graphObject_: Obj259) named Capsule
    self.drawConnections(
(self.obj371,self.obj448,[1621.0, 1341.0, 1311.0, 1118.5],"true", 2) )
    # Connections for obj372 (graphObject_: Obj260) named PackageContainer
    self.drawConnections(
(self.obj372,self.obj449,[1456.0, 1301.0, 1302.0, 1129.0],"true", 2) )
    # Connections for obj373 (graphObject_: Obj261) named Model_S
    self.drawConnections(
(self.obj373,self.obj450,[1416.0, 1481.0, 1430.0, 1475.0],"true", 2) )
    # Connections for obj374 (graphObject_: Obj262) named Package
    self.drawConnections(
(self.obj374,self.obj451,[1536.0, 1481.0, 1510.0, 1455.0],"true", 2) )
    # Connections for obj375 (graphObject_: Obj263) named CapsuleRole
    self.drawConnections(
(self.obj375,self.obj452,[1821.0, 1341.0, 1328.0, 1095.0],"true", 2) )
    # Connections for obj376 (graphObject_: Obj264) named PortConnector
    self.drawConnections(
(self.obj376,self.obj453,[2021.0, 1341.0, 1334.0, 1089.0],"true", 2) )
    # Connections for obj377 (graphObject_: Obj265) named Thread
    self.drawConnections(
(self.obj377,self.obj454,[2241.0, 1341.0, 1329.0, 1078.0],"true", 2) )
    # Connections for obj378 (graphObject_: Obj266) named PhysicalThread
    self.drawConnections(
(self.obj378,self.obj455,[2211.0, 1521.0, 2232.0, 1488.0],"true", 2) )
    # Connections for obj379 (graphObject_: Obj267) named LogicalThread
    self.drawConnections(
(self.obj379,self.obj456,[2376.0, 1481.0, 2365.0, 1456.0],"true", 2) )
    # Connections for obj380 (graphObject_: Obj268) named PortType
    self.drawConnections(
(self.obj380,self.obj457,[736.0, 361.0, 742.3984375, 330.85199795084969],"true", 2) )
    # Connections for obj381 (graphObject_: Obj269) named BASE0
    self.drawConnections(
(self.obj381,self.obj458,[736.0, 521.0, 736.0, 511.0],"true", 2) )
    # Connections for obj382 (graphObject_: Obj270) named CONJUGATE1
    self.drawConnections(
(self.obj382,self.obj459,[769.0, 681.0, 779.0, 671.0],"true", 2) )
    # Connections for obj383 (graphObject_: Obj271) named SignalType
    self.drawConnections(
(self.obj383,self.obj462,[976.0, 361.0, 976.3984375, 337.4667520492103],"true", 2) )
    # Connections for obj384 (graphObject_: Obj272) named OUT1
    self.drawConnections(
(self.obj384,self.obj461,[1016.0, 681.0, 1020.6875, 661.95774647899998],"true", 2) )
    # Connections for obj385 (graphObject_: Obj273) named IN0
    self.drawConnections(
(self.obj385,self.obj460,[936.0, 521.0, 936.0, 511.0],"true", 2) )
    # Connections for obj386 (graphObject_: Obj274) named RoleType
    self.drawConnections(
(self.obj386,self.obj463,[1236.0, 361.0, 1242.3984375, 350.4667520492103],"true", 2) )
    # Connections for obj387 (graphObject_: Obj275) named FIXED0
    self.drawConnections(
(self.obj387,self.obj464,[1156.0, 521.0, 1156.0, 511.0],"true", 2) )
    # Connections for obj388 (graphObject_: Obj276) named OPTIONAL1
    self.drawConnections(
(self.obj388,self.obj465,[1236.0, 681.0, 1236.0, 591.0],"true", 2) )
    # Connections for obj389 (graphObject_: Obj277) named PLUGIN2
    self.drawConnections(
(self.obj389,self.obj466,[1256.0, 841.0, 1302.0, 812.0],"true", 2) )
    # Connections for obj390 (graphObject_: Obj278) named TransitionType
    self.drawConnections(
(self.obj390,self.obj467,[1536.0, 401.0, 1538.078125, 385.54052254101362],"true", 2) )
    # Connections for obj391 (graphObject_: Obj279) named SIBLING0
    self.drawConnections(
(self.obj391,self.obj468,[1456.0, 561.0, 1456.0, 551.0],"true", 2) )
    # Connections for obj392 (graphObject_: Obj280) named IN1
    self.drawConnections(
(self.obj392,self.obj469,[1496.0, 721.0, 1506.0, 631.0],"true", 2) )
    # Connections for obj393 (graphObject_: Obj281) named OUT2
    self.drawConnections(
(self.obj393,self.obj470,[1556.0, 881.0, 1550.0, 771.0],"true", 2) )
    # Connections for obj394 (graphObject_: Obj282) named Def
    self.drawConnections(
(self.obj394,self.obj471,[256.0, 2081.0, 264.828125, 2024.4262295081967],"true", 2) )
    # Connections for obj395 (graphObject_: Obj283) named Expr
    self.drawConnections(
(self.obj395,self.obj472,[436.0, 2081.0, 451.828125, 2034.4262295081967],"true", 2) )
    # Connections for obj396 (graphObject_: Obj284) named Pattern
    self.drawConnections(
(self.obj396,self.obj473,[576.0, 2081.0, 594.828125, 2052.4262295081967],"true", 2) )
    # Connections for obj397 (graphObject_: Obj285) named Proc
    self.drawConnections(
(self.obj397,self.obj474,[1976.0, 2081.0, 1972.828125, 2057.4262295081967],"true", 2) )
    # Connections for obj398 (graphObject_: Obj286) named ProcDef
    self.drawConnections(
(self.obj398,self.obj475,[171.0, 2261.0, 176.0, 2241.0],"true", 2) )
    # Connections for obj399 (graphObject_: Obj287) named FuncDef
    self.drawConnections(
(self.obj399,self.obj476,[216.0, 2601.0, 225.0, 2586.0],"true", 2) )
    # Connections for obj400 (graphObject_: Obj288) named Name
    self.drawConnections(
(self.obj400,self.obj477,[776.0, 2081.0, 794.828125, 2061.4262295081967],"true", 2) )
    # Connections for obj401 (graphObject_: Obj289) named PythonRef
    self.drawConnections(
(self.obj401,self.obj478,[816.0, 2261.0, 826.0, 2245.0],"true", 2) )
    # Connections for obj402 (graphObject_: Obj290) named Module
    self.drawConnections(
(self.obj402,self.obj479,[136.0, 2441.0, 133.5, 2421.0],"true", 2) )
    # Connections for obj403 (graphObject_: Obj291) named Null
    self.drawConnections(
(self.obj403,self.obj480,[1936.0, 2261.0, 1953.5, 2252.0],"true", 2) )
    # Connections for obj404 (graphObject_: Obj292) named Trigger_T
    self.drawConnections(
(self.obj404,self.obj481,[2076.0, 2261.0, 2067.0, 2246.0],"true", 2) )
    # Connections for obj405 (graphObject_: Obj293) named Listen
    self.drawConnections(
(self.obj405,self.obj482,[2336.0, 2261.0, 2338.5, 2248.0],"true", 2) )
    # Connections for obj406 (graphObject_: Obj294) named ConditionBranch
    self.drawConnections(
(self.obj406,self.obj483,[1776.0, 2081.0, 1776.046875, 2063.4262295081967],"true", 2) )
    # Connections for obj407 (graphObject_: Obj295) named ListenBranch
    self.drawConnections(
(self.obj407,self.obj484,[1056.0, 2081.0, 1057.828125, 2058.4262295081967],"true", 2) )
    # Connections for obj408 (graphObject_: Obj296) named Site
    self.drawConnections(
(self.obj408,self.obj485,[1176.0, 2081.0, 1176.328125, 2056.4262295081967],"true", 2) )
    # Connections for obj409 (graphObject_: Obj297) named Model_T
    self.drawConnections(
(self.obj409,self.obj486,[1456.0, 2081.0, 1462.625, 2057.5],"true", 2) )
    # Connections for obj410 (graphObject_: Obj298) named MatchCase
    self.drawConnections(
(self.obj410,self.obj487,[1576.0, 2081.0, 1569.875, 2057.5],"true", 2) )
    # Connections for obj411 (graphObject_: Obj299) named Condition
    self.drawConnections(
(self.obj411,self.obj488,[1776.0, 2261.0, 1776.5, 2265.0],"true", 2),
(self.obj411,self.obj489,[1776.0, 2261.0, 1778.0, 2251.0],"true", 2) )
    # Connections for obj412 (graphObject_: Obj300) named New
    self.drawConnections(
(self.obj412,self.obj490,[2516.0, 2261.0, 2483.0, 2243.0],"true", 2) )
    # Connections for obj413 (graphObject_: Obj301) named Delay
    self.drawConnections(
(self.obj413,self.obj491,[2716.0, 2261.0, 2700.0, 2239.0],"true", 2) )
    # Connections for obj414 (graphObject_: Obj302) named Par
    self.drawConnections(
(self.obj414,self.obj492,[2011.0, 2481.0, 2021.0, 2479.0],"true", 2) )
    # Connections for obj415 (graphObject_: Obj303) named ParIndexed
    self.drawConnections(
(self.obj415,self.obj493,[2041.0, 2481.0, 2031.0, 2479.0],"true", 2) )
    # Connections for obj416 (graphObject_: Obj304) named Inst
    self.drawConnections(
(self.obj416,self.obj494,[2276.0, 2441.0, 2230.5, 2240.0],"true", 2) )
    # Connections for obj417 (graphObject_: Obj305) named LocalDef
    self.drawConnections(
(self.obj417,self.obj495,[2476.0, 2441.0, 2467.5, 2256.0],"true", 2) )
    # Connections for obj418 (graphObject_: Obj306) named Seq
    self.drawConnections(
(self.obj418,self.obj496,[1896.0, 2621.0, 1896.0, 2601.0],"true", 2) )
    # Connections for obj419 (graphObject_: Obj307) named ConditionSet
    self.drawConnections(
(self.obj419,self.obj497,[2676.0, 2441.0, 2675.0, 2249.0],"true", 2) )
    # Connections for obj420 (graphObject_: Obj308) named Match
    self.drawConnections(
(self.obj420,self.obj499,[2922.0, 2261.0, 2900.0, 2225.0],"true", 2) )
    # Connections for obj421 (graphObject_: Obj309) named Print
    self.drawConnections(
(self.obj421,self.obj498,[2876.0, 2441.0, 2876.0, 2237.0],"true", 2) )
    # Connections for obj422 (graphObject_: Obj310) named paired_with
    self.drawConnections(
(self.obj422,self.obj351,[121.0, 395.0, 110.0625, 1870.0],"true", 2) )
    # Connections for obj423 (graphObject_: Obj312) named match_contains
    self.drawConnections(
(self.obj423,self.obj352,[745.5625, 123.0, 1401.703125, 153.27684426236064],"true", 2) )
    # Connections for obj424 (graphObject_: Obj314) named apply_contains
    self.drawConnections(
(self.obj424,self.obj353,[572.123046875, 1947.0, 1380.65625, 1952.6680327868853],"true", 2) )
    # Connections for obj425 (graphObject_: Obj316) named directLink_T
    self.drawConnections(
(self.obj425,self.obj353,[3150.5800781200001, 1878.0, 3150.5800781249995, 1878.0, 1605.09375, 1853.2622950819673],"true", 3) )
    # Connections for obj426 (graphObject_: Obj318) named directLink_S
    self.drawConnections(
(self.obj426,self.obj352,[2507.2421875, 88.0, 2329.2421875, 129.0, 1630.296875, 153.27684426236064],"true", 3) )
    # Connections for obj427 (graphObject_: Obj320) named indirectLink_S
    self.drawConnections(
(self.obj427,self.obj352,[2526.7421875, 226.5, 2548.7421875, 302.5, 1630.296875, 326.78504098367216],"true", 3) )
    # Connections for obj428 (graphObject_: Obj322) named backward_link
    self.drawConnections(
(self.obj428,self.obj352,[1991.5, 1063.0, 1995.0, 383.0, 1630.296875, 326.78504098367216],"true", 3) )
    # Connections for obj429 (graphObject_: Obj324) named trace_link
    self.drawConnections(
(self.obj429,self.obj352,[2290.0, 1056.0, 2300.0, 377.0, 1630.296875, 326.78504098367216],"true", 3) )
    # Connections for obj430 (graphObject_: Obj326) of type CD_Inheritance3
    self.drawConnections(
(self.obj430,self.obj352,[460.953125, 310.04052254099997, 1401.703125, 326.78504098367216],"true", 2) )
    # Connections for obj431 (graphObject_: Obj328) of type CD_Inheritance3
    self.drawConnections(
(self.obj431,self.obj354,[668.0, 934.0, 496.0, 601.0],"true", 2) )
    # Connections for obj432 (graphObject_: Obj330) of type CD_Inheritance3
    self.drawConnections(
(self.obj432,self.obj354,[308.0, 622.0, 341.0, 581.0],"true", 2) )
    # Connections for obj433 (graphObject_: Obj332) of type CD_Inheritance3
    self.drawConnections(
(self.obj433,self.obj354,[349.0, 783.0, 376.0, 601.0],"true", 2) )
    # Connections for obj434 (graphObject_: Obj334) of type CD_Inheritance3
    self.drawConnections(
(self.obj434,self.obj354,[372.0, 809.0, 376.0, 601.0],"true", 2) )
    # Connections for obj435 (graphObject_: Obj336) of type CD_Inheritance3
    self.drawConnections(
(self.obj435,self.obj354,[468.0, 645.0, 456.0, 601.0],"true", 2) )
    # Connections for obj436 (graphObject_: Obj338) of type CD_Inheritance3
    self.drawConnections(
(self.obj436,self.obj355,[929.875, 1107.0, 831.0, 1061.0],"true", 2) )
    # Connections for obj437 (graphObject_: Obj340) of type CD_Inheritance3
    self.drawConnections(
(self.obj437,self.obj355,[618.0, 1074.0, 641.0, 1061.0],"true", 2) )
    # Connections for obj438 (graphObject_: Obj342) of type CD_Inheritance3
    self.drawConnections(
(self.obj438,self.obj355,[801.0, 1104.0, 796.0, 1081.0],"true", 2) )
    # Connections for obj439 (graphObject_: Obj344) of type CD_Inheritance3
    self.drawConnections(
(self.obj439,self.obj355,[638.0, 1081.0, 641.0, 1061.0],"true", 2) )
    # Connections for obj440 (graphObject_: Obj346) of type CD_Inheritance3
    self.drawConnections(
(self.obj440,self.obj360,[899.0, 1275.0, 897.0, 1261.0],"true", 2) )
    # Connections for obj441 (graphObject_: Obj348) of type CD_Inheritance3
    self.drawConnections(
(self.obj441,self.obj364,[855.0, 1451.0, 836.0, 1441.0],"true", 2) )
    # Connections for obj442 (graphObject_: Obj350) of type CD_Inheritance3
    self.drawConnections(
(self.obj442,self.obj364,[898.0, 1621.0, 876.0, 1441.0],"true", 2) )
    # Connections for obj443 (graphObject_: Obj352) of type CD_Inheritance3
    self.drawConnections(
(self.obj443,self.obj364,[930.0, 1522.0, 876.0, 1441.0],"true", 2) )
    # Connections for obj444 (graphObject_: Obj354) of type CD_Inheritance3
    self.drawConnections(
(self.obj444,self.obj360,[1032.875, 1278.0, 1020.75, 1261.0],"true", 2) )
    # Connections for obj445 (graphObject_: Obj356) of type CD_Inheritance3
    self.drawConnections(
(self.obj445,self.obj355,[1246.0, 1144.0, 831.0, 1061.0],"true", 2) )
    # Connections for obj446 (graphObject_: Obj358) of type CD_Inheritance3
    self.drawConnections(
(self.obj446,self.obj364,[961.0, 1487.0, 911.0, 1421.0],"true", 2) )
    # Connections for obj447 (graphObject_: Obj360) of type CD_Inheritance3
    self.drawConnections(
(self.obj447,self.obj369,[1208.0, 1461.0, 1236.0, 1441.0],"true", 2) )
    # Connections for obj448 (graphObject_: Obj362) of type CD_Inheritance3
    self.drawConnections(
(self.obj448,self.obj355,[1311.0, 1118.5, 831.0, 1061.0],"true", 2) )
    # Connections for obj449 (graphObject_: Obj364) of type CD_Inheritance3
    self.drawConnections(
(self.obj449,self.obj355,[1302.0, 1129.0, 831.0, 1061.0],"true", 2) )
    # Connections for obj450 (graphObject_: Obj366) of type CD_Inheritance3
    self.drawConnections(
(self.obj450,self.obj372,[1430.0, 1475.0, 1456.0, 1441.0],"true", 2) )
    # Connections for obj451 (graphObject_: Obj368) of type CD_Inheritance3
    self.drawConnections(
(self.obj451,self.obj372,[1510.0, 1455.0, 1496.0, 1441.0],"true", 2) )
    # Connections for obj452 (graphObject_: Obj370) of type CD_Inheritance3
    self.drawConnections(
(self.obj452,self.obj355,[1328.0, 1095.0, 831.0, 1061.0],"true", 2) )
    # Connections for obj453 (graphObject_: Obj372) of type CD_Inheritance3
    self.drawConnections(
(self.obj453,self.obj355,[1334.0, 1089.0, 831.0, 1061.0],"true", 2) )
    # Connections for obj454 (graphObject_: Obj374) of type CD_Inheritance3
    self.drawConnections(
(self.obj454,self.obj355,[1329.0, 1078.0, 831.0, 1061.0],"true", 2) )
    # Connections for obj455 (graphObject_: Obj376) of type CD_Inheritance3
    self.drawConnections(
(self.obj455,self.obj377,[2232.0, 1488.0, 2276.0, 1441.0],"true", 2) )
    # Connections for obj456 (graphObject_: Obj378) of type CD_Inheritance3
    self.drawConnections(
(self.obj456,self.obj377,[2365.0, 1456.0, 2356.0, 1441.0],"true", 2) )
    # Connections for obj457 (graphObject_: Obj380) of type CD_Inheritance3
    self.drawConnections(
(self.obj457,self.obj352,[742.3984375, 330.85199795099999, 1401.703125, 326.78504098367216],"true", 2) )
    # Connections for obj458 (graphObject_: Obj382) of type CD_Inheritance3
    self.drawConnections(
(self.obj458,self.obj380,[736.0, 511.0, 736.0, 501.0],"true", 2) )
    # Connections for obj459 (graphObject_: Obj384) of type CD_Inheritance3
    self.drawConnections(
(self.obj459,self.obj380,[779.0, 671.0, 776.0, 501.0],"true", 2) )
    # Connections for obj460 (graphObject_: Obj386) of type CD_Inheritance3
    self.drawConnections(
(self.obj460,self.obj383,[936.0, 511.0, 936.0, 501.0],"true", 2) )
    # Connections for obj461 (graphObject_: Obj388) of type CD_Inheritance3
    self.drawConnections(
(self.obj461,self.obj383,[1020.6875, 661.95774647887322, 1016.0, 501.0],"true", 2) )
    # Connections for obj462 (graphObject_: Obj390) of type CD_Inheritance3
    self.drawConnections(
(self.obj462,self.obj352,[976.3984375, 337.46675204899998, 1401.703125, 326.78504098367216],"true", 2) )
    # Connections for obj463 (graphObject_: Obj392) of type CD_Inheritance3
    self.drawConnections(
(self.obj463,self.obj352,[1242.3984375, 350.46675204899998, 1401.703125, 326.78504098367216],"true", 2) )
    # Connections for obj464 (graphObject_: Obj394) of type CD_Inheritance3
    self.drawConnections(
(self.obj464,self.obj386,[1156.0, 511.0, 1156.0, 501.0],"true", 2) )
    # Connections for obj465 (graphObject_: Obj396) of type CD_Inheritance3
    self.drawConnections(
(self.obj465,self.obj386,[1236.0, 591.0, 1236.0, 501.0],"true", 2) )
    # Connections for obj466 (graphObject_: Obj398) of type CD_Inheritance3
    self.drawConnections(
(self.obj466,self.obj386,[1302.0, 812.0, 1236.0, 501.0],"true", 2) )
    # Connections for obj467 (graphObject_: Obj400) of type CD_Inheritance3
    self.drawConnections(
(self.obj467,self.obj352,[1538.078125, 385.54052254099997, 1540.0625, 370.16209016400001],"true", 2) )
    # Connections for obj468 (graphObject_: Obj402) of type CD_Inheritance3
    self.drawConnections(
(self.obj468,self.obj390,[1456.0, 551.0, 1456.0, 541.0],"true", 2) )
    # Connections for obj469 (graphObject_: Obj404) of type CD_Inheritance3
    self.drawConnections(
(self.obj469,self.obj390,[1506.0, 631.0, 1496.0, 541.0],"true", 2) )
    # Connections for obj470 (graphObject_: Obj406) of type CD_Inheritance3
    self.drawConnections(
(self.obj470,self.obj390,[1550.0, 771.0, 1536.0, 541.0],"true", 2) )
    # Connections for obj471 (graphObject_: Obj408) of type CD_Inheritance3
    self.drawConnections(
(self.obj471,self.obj353,[264.828125, 2024.4262295081967, 1380.65625, 1997.8524590163934],"true", 2) )
    # Connections for obj472 (graphObject_: Obj410) of type CD_Inheritance3
    self.drawConnections(
(self.obj472,self.obj353,[451.828125, 2034.4262295081967, 1380.65625, 1997.8524590163934],"true", 2) )
    # Connections for obj473 (graphObject_: Obj412) of type CD_Inheritance3
    self.drawConnections(
(self.obj473,self.obj353,[594.828125, 2052.4262295081967, 1380.65625, 1997.8524590163934],"true", 2) )
    # Connections for obj474 (graphObject_: Obj414) of type CD_Inheritance3
    self.drawConnections(
(self.obj474,self.obj353,[1972.828125, 2057.4262295081967, 1605.09375, 1997.8524590163934],"true", 2) )
    # Connections for obj475 (graphObject_: Obj416) of type CD_Inheritance3
    self.drawConnections(
(self.obj475,self.obj394,[176.0, 2241.0, 176.0, 2221.0],"true", 2) )
    # Connections for obj476 (graphObject_: Obj418) of type CD_Inheritance3
    self.drawConnections(
(self.obj476,self.obj394,[225.0, 2586.0, 216.0, 2221.0],"true", 2) )
    # Connections for obj477 (graphObject_: Obj420) of type CD_Inheritance3
    self.drawConnections(
(self.obj477,self.obj353,[794.828125, 2061.4262295081967, 1380.65625, 1997.8524590163934],"true", 2) )
    # Connections for obj478 (graphObject_: Obj422) of type CD_Inheritance3
    self.drawConnections(
(self.obj478,self.obj400,[826.0, 2245.0, 816.0, 2221.0],"true", 2) )
    # Connections for obj479 (graphObject_: Obj424) of type CD_Inheritance3
    self.drawConnections(
(self.obj479,self.obj398,[133.5, 2421.0, 131.0, 2401.0],"true", 2) )
    # Connections for obj480 (graphObject_: Obj426) of type CD_Inheritance3
    self.drawConnections(
(self.obj480,self.obj397,[1953.5, 2252.0, 1976.0, 2221.0],"true", 2) )
    # Connections for obj481 (graphObject_: Obj428) of type CD_Inheritance3
    self.drawConnections(
(self.obj481,self.obj397,[2067.0, 2246.0, 2056.0, 2221.0],"true", 2) )
    # Connections for obj482 (graphObject_: Obj430) of type CD_Inheritance3
    self.drawConnections(
(self.obj482,self.obj397,[2338.5, 2248.0, 2131.0, 2201.0],"true", 2) )
    # Connections for obj483 (graphObject_: Obj432) of type CD_Inheritance3
    self.drawConnections(
(self.obj483,self.obj353,[1776.046875, 2063.4262295081967, 1605.09375, 1997.8524590163934],"true", 2) )
    # Connections for obj484 (graphObject_: Obj434) of type CD_Inheritance3
    self.drawConnections(
(self.obj484,self.obj353,[1057.828125, 2058.4262295081967, 1380.65625, 1997.8524590163934],"true", 2) )
    # Connections for obj485 (graphObject_: Obj436) of type CD_Inheritance3
    self.drawConnections(
(self.obj485,self.obj353,[1176.328125, 2056.4262295081967, 1380.65625, 1997.8524590163934],"true", 2) )
    # Connections for obj486 (graphObject_: Obj438) of type CD_Inheritance3
    self.drawConnections(
(self.obj486,self.obj353,[1462.625, 2057.5, 1469.25, 2034.0],"true", 2) )
    # Connections for obj487 (graphObject_: Obj440) of type CD_Inheritance3
    self.drawConnections(
(self.obj487,self.obj353,[1569.875, 2057.5, 1563.75, 2034.0],"true", 2) )
    # Connections for obj488 (graphObject_: Obj442) of type CD_Inheritance3
    self.drawConnections(
(self.obj488,self.obj397,[1776.5, 2265.0, 1941.0, 2201.0],"true", 2) )
    # Connections for obj489 (graphObject_: Obj444) of type CD_Inheritance3
    self.drawConnections(
(self.obj489,self.obj406,[1778.0, 2251.0, 1776.0, 2221.0],"true", 2) )
    # Connections for obj490 (graphObject_: Obj446) of type CD_Inheritance3
    self.drawConnections(
(self.obj490,self.obj397,[2483.0, 2243.0, 2131.0, 2201.0],"true", 2) )
    # Connections for obj491 (graphObject_: Obj448) of type CD_Inheritance3
    self.drawConnections(
(self.obj491,self.obj397,[2700.0, 2239.0, 2131.0, 2201.0],"true", 2) )
    # Connections for obj492 (graphObject_: Obj450) of type CD_Inheritance3
    self.drawConnections(
(self.obj492,self.obj397,[2021.0, 2479.0, 2016.0, 2221.0],"true", 2) )
    # Connections for obj493 (graphObject_: Obj452) of type CD_Inheritance3
    self.drawConnections(
(self.obj493,self.obj397,[2031.0, 2479.0, 2016.0, 2221.0],"true", 2) )
    # Connections for obj494 (graphObject_: Obj454) of type CD_Inheritance3
    self.drawConnections(
(self.obj494,self.obj397,[2230.5, 2240.0, 2131.0, 2201.0],"true", 2) )
    # Connections for obj495 (graphObject_: Obj456) of type CD_Inheritance3
    self.drawConnections(
(self.obj495,self.obj397,[2467.5, 2256.0, 2131.0, 2201.0],"true", 2) )
    # Connections for obj496 (graphObject_: Obj458) of type CD_Inheritance3
    self.drawConnections(
(self.obj496,self.obj414,[1896.0, 2601.0, 1896.0, 2581.0],"true", 2) )
    # Connections for obj497 (graphObject_: Obj460) of type CD_Inheritance3
    self.drawConnections(
(self.obj497,self.obj397,[2675.0, 2249.0, 2131.0, 2201.0],"true", 2) )
    # Connections for obj498 (graphObject_: Obj462) of type CD_Inheritance3
    self.drawConnections(
(self.obj498,self.obj397,[2876.0, 2237.0, 2131.0, 2201.0],"true", 2) )
    # Connections for obj499 (graphObject_: Obj464) of type CD_Inheritance3
    self.drawConnections(
(self.obj499,self.obj397,[2900.0, 2225.0, 2131.0, 2201.0],"true", 2) )

newfunction = UMLRT2Kiltera_MM_MDL

loadedMMName = 'CD_ClassDiagramsV3_META'

atom3version = '0.3'
